ontoref-derive: #[onto_mcp_tool] attribute macro registers MCP tool unit-structs in
the catalog at link time via inventory::submit!; annotated item is emitted unchanged,
ToolBase/AsyncTool impls stay on the struct. All 34 tools migrated from manual wiring
(net +5: ontoref_list_projects, ontoref_search, ontoref_describe,
ontoref_list_ontology_extensions, ontoref_get_ontology_extension).
validate modes (ADR-018): reads level_hierarchy from workflow.ncl and checks every
.ncl mode for level declared, strategy declared, delegate chain coherent, compose
extends valid. mode resolve <id> shows which hierarchy level handles a mode and why.
--self-test generates synthetic fixtures in a temp dir for CI smoke-testing.
validate run-cargo: two-step Cargo.toml resolution — workspace layout first
(crates/<check.crate>/Cargo.toml), single-crate fallback by package name or repo
basename. Lets the same ADR constraint shape apply to workspace and single-crate repos.
ontology/schemas/manifest.ncl: registry_topology_type contract — multi-registry
coordination, push targets, participant scopes, per-namespace capability.
reflection/requirements/base.ncl: oras ≥1.2.0, cosign ≥2.0.0, sops ≥3.9.0, age
≥1.1.0, restic declared as Hard/Soft requirements with version_min, check_cmd, and
install_hint (ADR-017 toolchain surface).
ADR-019: per-file recipient routing for tenant isolation without multi-vault. Schema
additions: sops.recipient_groups + sops.recipient_rules in ontoref-project.ncl.
secrets-bootstrap generates .sops.yaml from project.ncl in declarative mode. Three
new secrets-audit checks: recipient-routing-coherent, recipient-routing-coverage,
no-multi-vault. Adoption templates: single-team/, multi-tenant/, agent-first/.
Integration templates: domain-producer/, mode-producer/, mode-consumer/.
UI: project_picker surfaces registry badge (⟳ participant) and vault badge
(⛁ vault_id · N, green=declarative / amber=legacy) per project card. Expanded panel
adds collapsible Registry section with namespace, endpoint, and push/pull capability.
manage.html gains Runtime Services card — MCP and GraphQL toggleable without restart
via HTMX POST /ui/manage/services/{service}/toggle.
describe.nu: capabilities JSON includes registry_topology and vault_state per project.
sync.nu: drift check extended to detect //! absence on newly registered crates.
qa.ncl: six entries — credential-vault-best-practice (layered data-flow diagram),
credential-vault-templates (paths A/B/C), credential-vault-troubleshooting (15 named
errors), integration-what-and-why (ADR-042 OCI federation), integration-how-to-implement,
integration-troubleshooting.
on+re: core.ncl + manifest.ncl updated to reflect OCI, MCP, and mode-hierarchy nodes.
Deleted stale presentation assets (2026-02 slides + voice notes).
4668 lines
No EOL
292 KiB
Text
4668 lines
No EOL
292 KiB
Text
╭─── Claude Code v2.1.119 ─────────────────────────────────────────────────────╮
|
||
│ │ Recent activity │
|
||
│ Welcome back Jesús! │ No recent activity │
|
||
│ │ ─────────────────────── │
|
||
│ ▐▛███▜▌ │ What's new │
|
||
│ ▝▜█████▛▘ │ `/config` settings (th… │
|
||
│ ▘▘ ▝▝ │ Added `prUrlTemplate` … │
|
||
│ Sonnet 4.6 · Claude Max · jpl@jesusperez.pro's │ Added `CLAUDE_CODE_HID… │
|
||
│ Organization │ /release-notes for more │
|
||
│ /…/Akasha/Development/ontoref/assets/presentation │ │
|
||
╰──────────────────────────────────────────────────────────────────────────────╯
|
||
|
||
❯ me planteo estas dos propuestas para un open space y quiero unas slides sobre
|
||
ontologia y reflection como conceptos base del proyecto ontoref
|
||
es para Desarrolladores, puntos base para tener en cuenta
|
||
Dos propuestas
|
||
▎ "Ontología en mis proyectos: para que la IA sepa lo que no sabe y yo me
|
||
aclare"
|
||
|
||
Tesis: La ontología no es para la IA. Es para ti. La IA se beneficia como
|
||
efecto secundario.
|
||
|
||
Puntos clave:
|
||
- Sin modelo explícito, tus proyectos viven en tu cabeza — y lo que vive
|
||
solo en tu cabeza no se
|
||
puede validar.
|
||
- Formalizar invariantes, tensiones y estado actual te fuerza a saber qué
|
||
es verdad ahora mismo.
|
||
- La IA consume ese modelo y deja de inventarse contexto — opera sobre lo
|
||
que tú ya clarificaste.
|
||
- El valor real: el proceso de escribir la ontología es donde te aclaras
|
||
tú, no la IA.
|
||
|
||
Para el debate:
|
||
- ¿No es suficiente con un buen README?
|
||
- ¿Qué diferencia una ontología de una lista de decisiones?
|
||
- ¿Quién mantiene esto actualizado cuando el proyecto cambia rápido?
|
||
más que ver con ontref
|
||
▎ "Apocalipsis: la IA gestiona tu infra, ¿sabes lo que está pasando?"
|
||
|
||
Tesis: La IA puede declarar tu infra. No puede entenderla por ti.
|
||
|
||
Puntos clave:
|
||
- Declarativo != comprensión. Describes el estado deseado, no el por qué.
|
||
- La IA opera sobre forma, no sobre significado. Genera YAML correcto para
|
||
el problema equivocado.
|
||
- Sin ontología de tu infra — qué son las cosas, cómo se relacionan, qué no
|
||
puede romperse — no
|
||
tienes control, tienes ilusión de control.
|
||
- Cuando falla a las 2am, el Terraform generado no te dice qué asumió.
|
||
|
||
Para el debate:
|
||
- ¿Es diferente a copiar Stack Overflow?
|
||
- ¿Dónde está el mínimo de comprensión necesario?
|
||
- ¿Las plataformas internas resuelven esto o lo esconden?
|
||
más que ver con /Users/Akasha/project-provisioning/provisioning/
|
||
|
||
La idea es generar las slides en
|
||
/Users/Akasha/Development/ontoref/assets/presentation/
|
||
siguiendo el patrón actual de slides.md que puedes sobreescribir
|
||
|
||
⏺ Voy a leer los archivos existentes de presentación para entender el patrón.
|
||
|
||
Read 1 file, listed 1 directory (ctrl+o to expand)
|
||
|
||
⏺ Tengo el patrón claro — Slidev dark, español, componentes Vue, speaker notes.
|
||
Voy a escribir las slides ahora.
|
||
|
||
★ Insight ─────────────────────────────────────
|
||
El archivo usa Slidev con v-click para animaciones incrementales y el patrón
|
||
box-highlight border-l-4 como elemento visual recurrente. Las speaker notes en
|
||
<!-- --> son parte del contrato de presentación — no decoración. El flujo
|
||
narrativo real va del problema a la tesis, no al revés.
|
||
─────────────────────────────────────────────────
|
||
|
||
⏺ Write(slides.md)
|
||
⎿ Added 443 lines, removed 846 lines
|
||
1 ---
|
||
2 theme: default
|
||
3 -title: Ontology and Reflection
|
||
3 +title: Ontología y Reflection — lo que la IA no puede entender
|
||
+por ti
|
||
4 titleTemplate: '%s - OntoRef'
|
||
5 layout: cover
|
||
6 -keywords: Nickel,Nushell,Ontology,Reflection,StratumIOps
|
||
6 +keywords: Ontología,Reflection,IA,Infraestructura,OntoRef,Nushe
|
||
+ll,Nickel
|
||
7 download: true
|
||
8 -exportFilename: OntoRef
|
||
8 +exportFilename: ontoref-openspace
|
||
9 monaco: true
|
||
10 remoteAssets: true
|
||
11 selectable: true
|
||
...
|
||
27 class: 'justify-center flex flex-cols'
|
||
28 ---
|
||
29
|
||
30 -<h1 class="font-medium">Ontology & Reflection</h1>
|
||
30 +<h1 class="font-medium text-3xl leading-tight">La IA gestiona t
|
||
+u infra.<br><span class="text-orange-400">¿Sabes lo que está pa
|
||
+sando?</span></h1>
|
||
31
|
||
32 -<h2 class="flex justify-center mt-5 font-medium text-orange-400
|
||
-">
|
||
33 - <img class="-mt-2 h-32" src="/ontoref-text.svg">
|
||
34 -</h2>
|
||
35 -
|
||
36 -<div class="flex justify-center mt-3 text-gray-400 text-lg ital
|
||
-ic">
|
||
37 - Typing the invisible. Verifying the obvious. Sealing what mat
|
||
-ters.
|
||
32 +<div class="flex justify-center mt-6 text-gray-400 text-lg ital
|
||
+ic">
|
||
33 + Ontología y Reflection como base de un proyecto que se entien
|
||
+de a sí mismo.
|
||
34 </div>
|
||
35
|
||
40 -<div class="flex justify-center">
|
||
41 - <img class="mt-8 w-40" src="/jesusperez_w.svg">
|
||
36 +<div class="flex justify-center mt-8">
|
||
37 + <img class="w-40" src="/jesusperez_w.svg">
|
||
38 </div>
|
||
39
|
||
44 -<div class="flex justify-center">
|
||
45 - <img class="mt-8 w-40" src="/ontoref_img.svg">
|
||
46 -</div>
|
||
47 -
|
||
40 <style scoped>
|
||
41 h1, h2, p { z-index: 10; }
|
||
42 </style>
|
||
...
|
||
44 <Footer />
|
||
45
|
||
46 <!--
|
||
55 -Open with silence. Let the subtitle land.
|
||
56 -This talk is not about tools — it is about the epistemic contr
|
||
-act between code and understanding.
|
||
47 +Abrir con pausa. El título es una pregunta directa.
|
||
48 +No es retórica — la mayoría no sabe. Y el punto es exactamente
|
||
+ ese.
|
||
49 +Esta charla no es sobre herramientas. Es sobre qué pasa cuando
|
||
+ externalizas comprensión.
|
||
50 -->
|
||
51
|
||
52 ---
|
||
60 -layout: two-cols
|
||
53 +layout: default
|
||
54 ---
|
||
55
|
||
63 -# ¿Qué estamos resolviendo?
|
||
56 +# El problema no es la herramienta
|
||
57
|
||
58 +<div class="grid grid-cols-2 gap-8 mt-4">
|
||
59 +
|
||
60 <div>
|
||
61
|
||
67 -**Los problemas**
|
||
62 +**Lo que la IA hace bien**
|
||
63
|
||
64 <div class="mt-3 space-y-3">
|
||
65
|
||
66 <div class="flex items-start gap-2">
|
||
72 - <span class="text-red-500 font-bold text-sm mt-1">🔴</span>
|
||
73 - <div><span class="text-gray-200 font-semibold">Epistemic dri
|
||
-ft</span><br><span class="text-gray-400 text-sm">El código hac
|
||
-e X, el equipo cree que hace Y.<br> Silencioso. Acumulativo.</
|
||
-span></div>
|
||
67 + <span class="text-green-400 font-bold text-sm mt-1">✓</span>
|
||
68 + <div class="text-gray-300 text-sm">Genera YAML correcto sint
|
||
+ácticamente</div>
|
||
69 </div>
|
||
70
|
||
71 <div class="flex items-start gap-2">
|
||
77 - <span class="text-red-500 font-bold text-sm mt-1">🔴</span>
|
||
78 - <div><span class="text-gray-200 font-semibold">Multi-actor c
|
||
-ollision</span><br><span class="text-gray-400 text-sm">Humano
|
||
-+ agente IA escriben al mismo fichero,<br> sin coordinación.</
|
||
-span></div>
|
||
72 + <span class="text-green-400 font-bold text-sm mt-1">✓</span>
|
||
73 + <div class="text-gray-300 text-sm">Completa Terraform que nu
|
||
+nca rompe el plan</div>
|
||
74 </div>
|
||
75
|
||
76 <div class="flex items-start gap-2">
|
||
82 - <span class="text-orange-400 font-bold text-sm mt-1">🟠</spa
|
||
-n>
|
||
83 - <div><span class="text-gray-200 font-semibold">Decision amne
|
||
-sia</span><br><span class="text-gray-400 text-sm">¿Por qué se
|
||
-tomó esta decisión? ¿Quién la autorizó?</span></div>
|
||
77 + <span class="text-green-400 font-bold text-sm mt-1">✓</span>
|
||
78 + <div class="text-gray-300 text-sm">Rellena gaps de configura
|
||
+ción con defaults razonables</div>
|
||
79 </div>
|
||
80
|
||
81 <div class="flex items-start gap-2">
|
||
87 - <span class="text-orange-400 font-bold text-sm mt-1">🟠</spa
|
||
-n>
|
||
88 - <div><span class="text-gray-200 font-semibold">Config schizo
|
||
-phrenia</span><br><span class="text-gray-400 text-sm">Staging
|
||
-funciona, prod no. ¿Qué campo cambió y cuándo?</span></div>
|
||
82 + <span class="text-green-400 font-bold text-sm mt-1">✓</span>
|
||
83 + <div class="text-gray-300 text-sm">Traduce intención en form
|
||
+a declarativa</div>
|
||
84 </div>
|
||
85
|
||
86 </div>
|
||
87
|
||
88 </div>
|
||
89
|
||
95 -::right::
|
||
96 -
|
||
90 <div>
|
||
91
|
||
92 +<v-click>
|
||
93 +
|
||
94 +**Lo que la IA no puede hacer**
|
||
95 +
|
||
96 +<div class="mt-3 space-y-3">
|
||
97 +
|
||
98 <div class="flex items-start gap-2">
|
||
100 - <span class="text-orange-400 font-bold text-sm mt-1">🟠</spa
|
||
-n>
|
||
101 - <div><span class="text-gray-200 font-semibold">Docs como art
|
||
-efactos muertos</span><br><span class="text-gray-400 text-sm">
|
||
-Escritas una vez, olvidadas, nunca actualizadas.</span></div>
|
||
99 + <span class="text-red-400 font-bold text-sm mt-1">✗</span>
|
||
100 + <div class="text-gray-300 text-sm">Saber <em>por qué</em> es
|
||
+e servicio no puede escalar a N réplicas</div>
|
||
101 </div>
|
||
102
|
||
104 -<div class="flex items-start gap-2 mt-2">
|
||
105 - <span class="text-yellow-400 font-bold text-sm mt-1">🟡</spa
|
||
-n>
|
||
106 - <div><span class="text-gray-200 font-semibold">Agent con ceg
|
||
-uera</span><br><span class="text-gray-400 text-sm">Los agentes
|
||
- IA empiezan sin contexto,<br> violan invariantes establecidas
|
||
-.</span></div>
|
||
103 +<div class="flex items-start gap-2">
|
||
104 + <span class="text-red-400 font-bold text-sm mt-1">✗</span>
|
||
105 + <div class="text-gray-300 text-sm">Conocer la tensión que ex
|
||
+iste entre latencia y consistencia en <em>tu</em> sistema</div
|
||
+>
|
||
106 </div>
|
||
107
|
||
109 -<v-click>
|
||
108 +<div class="flex items-start gap-2">
|
||
109 + <span class="text-red-400 font-bold text-sm mt-1">✗</span>
|
||
110 + <div class="text-gray-300 text-sm">Recordar la decisión que
|
||
+tomaste en diciembre y por qué descartaste la alternativa</div
|
||
+>
|
||
111 +</div>
|
||
112
|
||
111 -<div class="mt-2 text-xs text-gray-400 space-y-2 font-mono">
|
||
113 +<div class="flex items-start gap-2">
|
||
114 + <span class="text-red-400 font-bold text-sm mt-1">✗</span>
|
||
115 + <div class="text-gray-300 text-sm">Entender qué no puede rom
|
||
+perse sin coordinación entre equipos</div>
|
||
116 +</div>
|
||
117
|
||
113 -**Ejemplo: desincronización real**
|
||
118 +</div>
|
||
119
|
||
115 -```bash
|
||
116 -# Documentación (2024-01)
|
||
117 -config.max_retries = 3
|
||
120 +</v-click>
|
||
121
|
||
119 -# Código actual (después de cambio sin registrar)
|
||
120 -config.max_retries = 7
|
||
122 +<v-click>
|
||
123
|
||
122 -# Equipo cree que está usando 3 ✗
|
||
123 -# Sistema usa 7 silenciosamente ✓
|
||
124 -# Nadie sabe cuándo cambió ni por qué
|
||
125 -```
|
||
126 -
|
||
124 +<div class="mt-6 border-l-4 border-orange-500 pl-4 text-sm tex
|
||
+t-gray-300">
|
||
125 + Declarativo ≠ comprensión.<br>
|
||
126 + Describes el estado deseado, no el <em>por qué</em>.
|
||
127 </div>
|
||
128
|
||
129 </v-click>
|
||
130
|
||
131 </div>
|
||
132
|
||
133 +</div>
|
||
134 +
|
||
135 <Footer />
|
||
136
|
||
137 <!--
|
||
136 -Pause after each severity badge. The audience will recognize t
|
||
-hese — they have lived this.
|
||
137 -Goal is recognition, not education. Ask silently: "how many of
|
||
- these are in your project right now?"
|
||
138 +La IA genera forma correcta para el problema equivocado.
|
||
139 +El YAML válido es el problema mínimo. El problema real es que
|
||
+nadie sabe qué asumió.
|
||
140 -->
|
||
141
|
||
142 ---
|
||
143 layout: default
|
||
144 ---
|
||
145
|
||
144 -# El coste de ignorarlo
|
||
146 +# Las 2am — cuando el Terraform no habla
|
||
147
|
||
148 <div class="grid grid-cols-2 gap-8 mt-4">
|
||
149
|
||
150 <div>
|
||
151
|
||
150 -<div class="box-highlight mt-2 font-mono text-xs">
|
||
152 +**Lo que ves cuando falla**
|
||
153
|
||
154 +<div class="mt-3 font-mono text-xs text-gray-300">
|
||
155 +
|
||
156 ```text
|
||
153 -Deuda técnica → arreglable
|
||
154 -Deuda epistémica → sistémica
|
||
155 -Deuda de confianza → letal
|
||
157 +Error: Error creating Instance:
|
||
158 + googleapi: Error 400: Invalid value
|
||
159 + for field 'resource.machineType'
|
||
160 +
|
||
161 +# El plan pasó. El apply falló.
|
||
162 +# ¿Qué asumió el agente?
|
||
163 +# ¿Qué región eligió? ¿Por qué ese tipo?
|
||
164 +# ¿Hay una restricción de org que no sabía?
|
||
165 ```
|
||
166
|
||
167 </div>
|
||
168
|
||
169 <v-click>
|
||
170
|
||
162 -<div class="mt-4 space-y-5 text-xs text-gray-300">
|
||
171 +<div class="mt-4 font-mono text-xs text-gray-400">
|
||
172
|
||
164 -<div class="border-l-2 border-red-500 pl-2">
|
||
165 - <div class="font-semibold text-red-300">Técnica</div>
|
||
166 - <div class="text-gray-400">Refactoriza, reescribe, corrige.<
|
||
-/div>
|
||
167 - <div class="text-gray-500 text-xs">1-3 sprints</div>
|
||
168 -</div>
|
||
173 +```yaml
|
||
174 +# Lo que generó la IA (hace 6 semanas)
|
||
175 +resource "google_compute_instance" "api" {
|
||
176 + machine_type = "e2-medium" # "razonable"
|
||
177 + zone = "us-central1-a" # "por defecto"
|
||
178 +}
|
||
179
|
||
170 -<div class="border-l-2 border-orange-500 pl-2">
|
||
171 - <div class="font-semibold text-orange-300">Epistémica</div>
|
||
172 - <div class="text-gray-400">Acumula silenciosamente. No sabes
|
||
- dónde.</div>
|
||
173 - <div class="text-gray-500 text-xs">Crece cada semana</div>
|
||
174 -</div>
|
||
180 +# Lo que tu política de org requiere
|
||
181 +# → solo europe-west1, solo n2-standard-*
|
||
182 +# → la IA no lo sabía porque tú tampoco lo escribiste
|
||
183 +```
|
||
184
|
||
176 -<div class="border-l-2 border-yellow-600 pl-2">
|
||
177 - <div class="font-semibold text-yellow-300">Confianza</div>
|
||
178 - <div class="text-gray-400">Se disuelve cuando se descubre el
|
||
- drift.</div>
|
||
179 - <div class="text-gray-500 text-xs">Imposible reparar rápido<
|
||
-/div>
|
||
185 </div>
|
||
186
|
||
182 -</div>
|
||
183 -
|
||
187 </v-click>
|
||
188
|
||
189 </div>
|
||
...
|
||
192
|
||
193 <v-click>
|
||
194
|
||
192 -<div class="mt-2 text-gray-300">
|
||
195 +**El patrón que se repite**
|
||
196
|
||
194 -**Escenario: 6 meses de ignorar**
|
||
197 +<div class="mt-3 space-y-3 text-sm">
|
||
198
|
||
196 -<div class="mt-3 font-mono text-xs space-y-2 text-gray-400">
|
||
199 +<div class="border-l-2 border-red-500 pl-3">
|
||
200 + <div class="text-red-300 font-semibold">Sin modelo explícito
|
||
+</div>
|
||
201 + <div class="text-gray-400">La IA inventa contexto plausible.
|
||
+ Tú asumes que sabe. Falla en prod.</div>
|
||
202 +</div>
|
||
203
|
||
198 -```yaml
|
||
199 -Mes 1: "Solo refactorizar esto"
|
||
200 -Mes 2: "Documentación está desactualizada"
|
||
201 -Mes 3: "¿Por qué prod falla y staging no?"
|
||
202 -Mes 4: "Nadie sabe quién cambió qué"
|
||
203 -Mes 5: Pánico. Rollback arriesgado.
|
||
204 -Mes 6: Equipo rechaza cambios nuevos.
|
||
205 - "No confiamos sin entender"
|
||
206 -```
|
||
204 +<div class="border-l-2 border-orange-500 pl-3">
|
||
205 + <div class="text-orange-300 font-semibold">Con Stack Overflo
|
||
+w</div>
|
||
206 + <div class="text-gray-400">Copias código sin entender el sup
|
||
+uesto. Al menos tú lo buscaste.</div>
|
||
207 +</div>
|
||
208
|
||
209 +<div class="border-l-2 border-yellow-500 pl-3">
|
||
210 + <div class="text-yellow-300 font-semibold">Con la IA</div>
|
||
211 + <div class="text-gray-400">El agente genera con confianza. L
|
||
+a confianza es contagiosa. El error también.</div>
|
||
212 </div>
|
||
213
|
||
214 </div>
|
||
...
|
||
217
|
||
218 <v-click>
|
||
219
|
||
216 -<div class="mt-8 text-gray-300 text-base leading-7 border-l-4
|
||
-border-orange-500 pl-4">
|
||
217 - Estos problemas no tienen solución técnica.<br>
|
||
218 - Tienen solución de <em>arquitectura</em>.
|
||
220 +<div class="mt-6 text-base font-semibold text-gray-200 border-
|
||
+l-4 border-orange-500 pl-4">
|
||
221 + La diferencia con Stack Overflow:<br>
|
||
222 + <span class="text-gray-400 font-normal text-sm">Al menos ahí
|
||
+ buscabas activamente.<br>Con la IA, delegas también la búsque
|
||
+da.</span>
|
||
223 </div>
|
||
224
|
||
225 </v-click>
|
||
...
|
||
228
|
||
229 </div>
|
||
230
|
||
231 +<Footer />
|
||
232 +
|
||
233 +<!--
|
||
234 +Este slide es el que el público siente. Todos tienen una histo
|
||
+ria de "la IA lo generó y pareció bien".
|
||
235 +La pregunta es: ¿cuándo lo descubriste? ¿Staging? ¿Prod? ¿6 me
|
||
+ses después?
|
||
236 +-->
|
||
237 +
|
||
238 ---
|
||
239 layout: default
|
||
240 ---
|
||
241
|
||
231 -<h1 class="-mt-5"> Verdad y operación — dos fuerzas que deben
|
||
-coexistir </h1>
|
||
242 +# Tu proyecto vive en tu cabeza
|
||
243
|
||
244 <div class="grid grid-cols-2 gap-8 mt-4">
|
||
245
|
||
235 -<div class="border-l-4 border-blue-500 pl-4">
|
||
246 +<div>
|
||
247
|
||
237 -**Yin — la capa formal**
|
||
248 +**Lo que vive solo en tu cabeza**
|
||
249
|
||
239 -*Lo que debe ser verdad*
|
||
240 -
|
||
250 <div class="mt-3 space-y-2 text-sm text-gray-300">
|
||
251
|
||
243 -- **Nickel schemas** → corrección estructural<br> en tiempo de
|
||
- definición
|
||
244 -- **ADR constraints** → "esto nunca puede violarse"
|
||
245 -- **Config seals** → estados sellados, verificables con sha256
|
||
246 -- **Ontology invariants** → lo que no puede cambiar <br> sin u
|
||
-n nuevo ADR
|
||
247 -- **Hashes matemáticos** → prueba de qué fue sellado<br> y cuá
|
||
-ndo
|
||
252 +<div class="flex items-start gap-2">
|
||
253 + <span class="text-orange-400 text-sm mt-1">→</span>
|
||
254 + <div>Por qué este servicio no puede tener más de 3 réplicas<
|
||
+/div>
|
||
255 +</div>
|
||
256
|
||
257 +<div class="flex items-start gap-2">
|
||
258 + <span class="text-orange-400 text-sm mt-1">→</span>
|
||
259 + <div>Qué pasó cuando intentamos escalar en enero y por qué f
|
||
+allamos</div>
|
||
260 </div>
|
||
261
|
||
262 +<div class="flex items-start gap-2">
|
||
263 + <span class="text-orange-400 text-sm mt-1">→</span>
|
||
264 + <div>La tensión entre el equipo de plataforma y el de produc
|
||
+to sobre quién controla el networking</div>
|
||
265 </div>
|
||
266
|
||
253 -<div class="border-l-4 border-orange-500 pl-4">
|
||
254 -
|
||
255 -**Yang — la capa operacional**
|
||
256 -
|
||
257 -*Cómo las cosas se mueven y cambian*
|
||
258 -
|
||
259 -<div class="-mt-2 space-y-2 text-sm text-gray-300">
|
||
260 -
|
||
261 -- **Nu commands** → transformación estructurada de datos
|
||
262 -- **Actors** (human/agent/CI) → mismo protocolo,<br> distintas
|
||
- capacidades
|
||
263 -- **Register flow** → captura cambios,<br> los enruta al artef
|
||
-acto correcto
|
||
264 -- **Mode definitions** → secuencias de operaciones<br> con ver
|
||
-ificación
|
||
265 -- **Pre-commit hooks** → sincronización forzada <br>en el mome
|
||
-nto del commit
|
||
266 -
|
||
267 +<div class="flex items-start gap-2">
|
||
268 + <span class="text-orange-400 text-sm mt-1">→</span>
|
||
269 + <div>Qué alternativa se rechazó y por qué</div>
|
||
270 </div>
|
||
271
|
||
272 +<div class="flex items-start gap-2">
|
||
273 + <span class="text-orange-400 text-sm mt-1">→</span>
|
||
274 + <div>Qué invariante no puede violarse sin romper el acuerdo
|
||
+con el equipo de seguridad</div>
|
||
275 </div>
|
||
276
|
||
277 </div>
|
||
278
|
||
279 <v-click>
|
||
280
|
||
275 -<div class="mt-1 border border-gray-700 rounded p-4 bg-gray-90
|
||
-0 text-sm text-gray-300 font-mono leading-7">
|
||
276 -
|
||
277 -```text
|
||
278 -Yang sin Yin = fluido pero caótico. Cualquier cosa puede cam
|
||
-biar. Nada es verificable.
|
||
279 -Yin sin Yang = correcto pero inútil. Schemas perfectos sin op
|
||
-eraciones = documentación muerta.
|
||
280 -```
|
||
281 -
|
||
282 -<div class="text-orange-400 text-center mt-2 font-sans font-se
|
||
-mibold">El sistema vive en la coexistencia.</div>
|
||
283 -
|
||
281 +<div class="mt-5 border-l-4 border-red-500 pl-4 text-sm text-g
|
||
+ray-400">
|
||
282 + Lo que vive solo en tu cabeza <strong class="text-red-300">n
|
||
+o se puede validar</strong>.<br>
|
||
283 + No puede consultarlo un agente. No puede consultarlo un comp
|
||
+añero nuevo.<br>
|
||
284 + No puedes consultarlo tú mismo en 6 meses.
|
||
285 </div>
|
||
286
|
||
287 </v-click>
|
||
288
|
||
288 -<Footer />
|
||
289 +</div>
|
||
290
|
||
290 -<!--
|
||
291 -The Yin/Yang is not metaphor for aesthetics — it is the archit
|
||
-ectural duality.
|
||
292 -Pure formal layer without operation is a museum. Pure operatio
|
||
-n without formal layer is controlled chaos.
|
||
293 -Hold the tension statement at the end. It is the thesis.
|
||
294 --->
|
||
291 +<div>
|
||
292
|
||
296 ----
|
||
297 -layout: center
|
||
298 ----
|
||
293 +<v-click>
|
||
294
|
||
300 -# Los ingredientes
|
||
295 +**La trampa del README**
|
||
296
|
||
302 -<div class="mt-2 space-y-3">
|
||
297 +<div class="mt-3 font-mono text-xs text-gray-400">
|
||
298
|
||
304 -<div class="border-l-4 border-blue-400 pl-4 py-2 bg-gray-900 r
|
||
-ounded-r">
|
||
305 - <div class="text-blue-300 font-mono font-semibold text-sm">C
|
||
-APA DECLARATIVA · Nickel</div>
|
||
306 - <div class="text-gray-400 text-sm mt-1"><code>.ontology/</co
|
||
-de> · <code>adrs/</code> · <code>refle
|
||
-ction/schemas/</code> · <code>reflection/configs/<
|
||
-/code></div>
|
||
307 - <div class="text-gray-500 text-xs mt-1">Tipos fuertes, contr
|
||
-atos, enums. Falla en definición, no en runtime.</div>
|
||
308 -</div>
|
||
299 +```markdown
|
||
300 +# Mi Proyecto
|
||
301
|
||
310 -<div class="border-l-4 border-orange-400 pl-4 py-2 bg-gray-900
|
||
- rounded-r">
|
||
311 - <div class="text-orange-300 font-mono font-semibold text-sm"
|
||
->CAPA OPERACIONAL · Nushell</div>
|
||
312 - <div class="text-gray-400 text-sm mt-1"><code>adr</code> &nb
|
||
-sp;· <code>register</code> · <code>config</c
|
||
-ode> · <code>backlog</code> · <code>fo
|
||
-rms</code> · <code>prereqs</code></div>
|
||
313 - <div class="text-gray-500 text-xs mt-1">Pipelines tipadas so
|
||
-bre datos estructurados. No streams de texto.</div>
|
||
314 -</div>
|
||
302 +Este servicio hace X. Está desplegado en GCP.
|
||
303 +Usa Terraform. Tiene 3 entornos: dev, staging, prod.
|
||
304
|
||
316 -<div class="border-l-4 border-green-400 pl-4 py-2 bg-gray-900
|
||
-rounded-r">
|
||
317 - <div class="text-green-300 font-mono font-semibold text-sm">
|
||
-PUNTO DE ENTRADA · Bash → Nu</div>
|
||
318 - <div class="text-gray-400 text-sm mt-1"><code>stratum.sh</co
|
||
-de> · actor detection · locking
|
||
-· <code>NICKEL_IMPORT_PATH</code></div>
|
||
319 - <div class="text-gray-500 text-xs mt-1">Un único entry point
|
||
-. Detecta actor, adquiere lock, despacha al módulo Nu correcto
|
||
-.</div>
|
||
320 -</div>
|
||
305 +## Arquitectura
|
||
306 +Ver diagrama (desactualizado desde marzo).
|
||
307
|
||
322 -<div class="border-l-4 border-purple-400 pl-4 py-2 bg-gray-900
|
||
- rounded-r">
|
||
323 - <div class="text-purple-300 font-mono font-semibold text-sm"
|
||
->GRAFO DE CONOCIMIENTO · Ontología + ADRs</div>
|
||
324 - <div class="text-gray-400 text-sm mt-1">nodes ·
|
||
-invariants · gates · dimensions
|
||
-· states</div>
|
||
325 - <div class="text-gray-500 text-xs mt-1">El sistema sabe qué
|
||
-sabe. Actor-agnostic. Machine-queryable.</div>
|
||
326 -</div>
|
||
308 +## Decisiones
|
||
309 +- Elegimos PostgreSQL porque MySQL no nos gustaba.
|
||
310 +- Usamos gRPC internamente.
|
||
311 +```
|
||
312
|
||
328 -<div class="border-l-4 border-yellow-400 pl-4 py-2 bg-gray-900
|
||
- rounded-r">
|
||
329 - <div class="text-yellow-300 font-mono font-semibold text-sm"
|
||
->ESTADOS SELLADOS · Config + Historia</div>
|
||
330 - <div class="text-gray-400 text-sm mt-1">profiles ·&nbs
|
||
-p; sha256 seals · audit trail · rollba
|
||
-ck</div>
|
||
331 - <div class="text-gray-500 text-xs mt-1">Inmutabilidad verifi
|
||
-cable. Drift detection. Trazabilidad completa ADR/PR/bug.</div
|
||
->
|
||
313 </div>
|
||
314
|
||
334 -</div>
|
||
315 +<div class="mt-4 space-y-2 text-sm text-gray-400">
|
||
316
|
||
336 -<Footer />
|
||
337 -
|
||
338 -<!--
|
||
339 -This is the map, not the territory. Each layer will get its ow
|
||
-n slide.
|
||
340 -Point bottom-up: sealed states give you history; the graph giv
|
||
-es you meaning; the entry point gives you discipline.
|
||
341 --->
|
||
342 -
|
||
343 ----
|
||
344 -layout: default
|
||
345 ----
|
||
346 -
|
||
347 -# Nickel — configuración con tipos, sin runtime
|
||
348 -
|
||
349 -<div class="grid grid-cols-2 gap-8 mt-4">
|
||
350 -
|
||
351 -<div>
|
||
352 -
|
||
353 -**Qué es Nickel**
|
||
354 -
|
||
355 -<div class="text-sm text-gray-300 space-y-1 mt-2">
|
||
356 -
|
||
357 -- Lenguaje de configuración con tipos fuertes (de Tweag)
|
||
358 -- Puramente declarativo: sin efectos secundarios, sin loops, s
|
||
-in runtime
|
||
359 -- Superset de JSON: JSON válido es Nickel válido
|
||
360 -- Imports: <small>`let s = import "schema.ncl" in`</small>
|
||
361 -- Contratos: `field | TypeName` — verificado al merge
|
||
362 -- Enums tipados: <small>`[| 'Proposed, 'Accepted, 'Superseded
|
||
-|]`</small>
|
||
363 -- Registros abiertos/cerrados: <br> <small>`{ _: String }` vs
|
||
-`{ field | String }`</small>
|
||
364 -- `nickel export file.ncl` → JSON estable pipelines Nu
|
||
365 -
|
||
317 +<div class="flex items-start gap-2">
|
||
318 + <span class="text-red-400 text-sm">✗</span>
|
||
319 + <div>No dice qué no puede cambiar</div>
|
||
320 </div>
|
||
321
|
||
368 -<div class="mt-4 text-lg text-gray-500 border-l-2 border-orang
|
||
-e-500 pl-3 italic">
|
||
369 - El sistema de tipos <em>es</em> la documentación.
|
||
322 +<div class="flex items-start gap-2">
|
||
323 + <span class="text-red-400 text-sm">✗</span>
|
||
324 + <div>No captura las alternativas rechazadas ni el por qué</d
|
||
+iv>
|
||
325 </div>
|
||
326
|
||
327 +<div class="flex items-start gap-2">
|
||
328 + <span class="text-red-400 text-sm">✗</span>
|
||
329 + <div>No es consultable ni verificable — es prosa</div>
|
||
330 </div>
|
||
331
|
||
374 -<div>
|
||
375 -
|
||
376 -**Por qué no alternativas**
|
||
377 -
|
||
378 -<div class="font-mono text-xs text-gray-400 -mt-4 space-y-1">
|
||
379 -
|
||
380 -```text
|
||
381 -YAML → sin tipos, whitespace-sensitive,
|
||
382 - coerciones implícitas
|
||
383 -TOML → sin tipos ≥ primitivos, sin imports
|
||
384 -JSON → sin comentarios, sin imports, sin tipos
|
||
385 -HCL → efectos secundarios, no es config pura
|
||
386 -CUE → similar pero peor historia de imports
|
||
387 -KCL → tipos + validación, pero vendedor
|
||
388 - lenguaje opaco
|
||
389 -```
|
||
390 -
|
||
332 +<div class="flex items-start gap-2">
|
||
333 + <span class="text-red-400 text-sm">✗</span>
|
||
334 + <div>No refleja el estado actual — refleja el estado de cuan
|
||
+do se escribió</div>
|
||
335 </div>
|
||
336
|
||
393 -<div class="mt-i2 text-lg text-gray-300 font-semibold">Por qué
|
||
- aquí específicamente</div>
|
||
394 -
|
||
395 -<div class="text-xs text-gray-400 mt-1 space-y-1">
|
||
396 -
|
||
397 -- ADR constraints necesitan typecheck, no validación manual
|
||
398 -- Perfiles de config deben fallar en definición, no en runtime
|
||
399 -- `nickel export` produce JSON estable para consumo Nu
|
||
400 -
|
||
337 </div>
|
||
338
|
||
403 -<v-click>
|
||
404 -
|
||
405 -<div class="mt-1 font-mono text-xs">
|
||
406 -
|
||
407 -```bash
|
||
408 -# YAML: silently accepts garbage
|
||
409 -actor: developr # typo, accepted
|
||
410 -# Nickel: rejected at typecheck
|
||
411 -{ actor | [| 'developer, 'agent, 'ci |] = "developr" }
|
||
412 -# ^^^^^^^^^
|
||
413 -# error: tag not in enum type
|
||
414 -```
|
||
415 -
|
||
416 -</div>
|
||
417 -
|
||
339 </v-click>
|
||
340
|
||
341 </div>
|
||
...
|
||
345 <Footer />
|
||
346
|
||
347 <!--
|
||
427 -The before/after example is the punchline. Let it sit.
|
||
428 -"The type system IS the documentation" — this is the core Nick
|
||
-el thesis. Not a feature, the philosophy.
|
||
348 +La pregunta clave que lanzar al público: ¿cuándo fue la última
|
||
+ vez que actualizaste tu README?
|
||
349 +Un README es documentación. Una ontología es un modelo vivo de
|
||
+l sistema.
|
||
350 -->
|
||
351
|
||
352 ---
|
||
432 -layout: default
|
||
353 +layout: center
|
||
354 ---
|
||
355
|
||
435 -# Nushell — datos estructurados, no streams de texto
|
||
356 +# La tesis
|
||
357
|
||
437 -<div class="grid grid-cols-2 gap-8 mt-4">
|
||
358 +<div class="mt-8 text-center space-y-6">
|
||
359
|
||
439 -<div>
|
||
360 +<div class="text-3xl font-semibold text-gray-100">
|
||
361 + La ontología no es para la IA.
|
||
362 +</div>
|
||
363
|
||
441 -**Shell tradicional: texto opaco**
|
||
442 -
|
||
443 -<div class="mt-2 font-mono text-xs">
|
||
444 -
|
||
445 -```bash
|
||
446 -# Bash: parsear texto, error-prone
|
||
447 -grep 'severity' adrs/adr-001.json |\
|
||
448 - python3 -c "import sys,json; ..."
|
||
449 -```
|
||
450 -
|
||
364 +<div class="text-3xl font-semibold text-orange-400">
|
||
365 + Es para ti.
|
||
366 </div>
|
||
367
|
||
368 <v-click>
|
||
369
|
||
455 -<div class="mt-4 text-sm font-semibold text-gray-200">Nushell:
|
||
- records nativos</div>
|
||
456 -
|
||
457 -<div class="mt-2 font-mono text-xs">
|
||
458 -
|
||
459 -```nu
|
||
460 -nickel export adrs/adr-001.ncl
|
||
461 - | from json
|
||
462 - | get constraints
|
||
463 - | where severity == "Hard"
|
||
464 - | select id claim
|
||
465 -```
|
||
466 -
|
||
370 +<div class="mt-8 text-lg text-gray-400 max-w-2xl mx-auto leadi
|
||
+ng-8">
|
||
371 + Formalizar invariantes, tensiones y estado actual<br>
|
||
372 + te fuerza a saber qué es verdad <em>ahora mismo</em>.
|
||
373 </div>
|
||
374
|
||
469 -<div class="mt-3 font-mono text-xs text-gray-500">
|
||
375 +</v-click>
|
||
376
|
||
471 -```text
|
||
472 -╭───┬────────────┬──────────────────────────────╮
|
||
473 -│ # │ id │ claim │
|
||
474 -├───┼────────────┼──────────────────────────────┤
|
||
475 -│ 0 │ adr-001-c1 │ nickel export must succeed… │
|
||
476 -│ 1 │ adr-001-c2 │ schema is sole source of… │
|
||
477 -╰───┴────────────┴──────────────────────────────╯
|
||
478 -```
|
||
377 +<v-click>
|
||
378
|
||
379 +<div class="mt-6 text-lg text-gray-400 max-w-2xl mx-auto leadi
|
||
+ng-8">
|
||
380 + La IA se beneficia como efecto secundario.<br>
|
||
381 + Opera sobre lo que <em>tú ya clarificaste</em>.
|
||
382 </div>
|
||
383
|
||
384 </v-click>
|
||
385
|
||
484 -</div>
|
||
485 -
|
||
486 -<div>
|
||
487 -
|
||
386 <v-click>
|
||
387
|
||
490 -**Nickel → Nu → Bash — tres capas, tres roles**
|
||
491 -
|
||
492 -<div class="mt-3 space-y-3 text-sm">
|
||
493 -
|
||
494 -<div class="box-highlight border-l-4 border-blue-500 pl-3 py-2
|
||
-">
|
||
495 - <div class="font-semibold text-blue-300">Nickel exporta JSON
|
||
- tipado</div>
|
||
496 - <div class="text-gray-400 text-xs">Nunca strings mágicos. Co
|
||
-ntratos en la definición, no en runtime.</div>
|
||
388 +<div class="mt-8 text-base text-gray-500 max-w-2xl mx-auto bor
|
||
+der-t border-gray-700 pt-6">
|
||
389 + El valor real: el proceso de <strong class="text-gray-300">e
|
||
+scribir la ontología</strong><br>
|
||
390 + es donde te aclaras tú, no la IA.
|
||
391 </div>
|
||
392
|
||
499 -<div class="box-highlight border-l-4 border-orange-400 pl-3 py
|
||
--2">
|
||
500 - <div class="font-semibold text-orange-300">Nu consume estruc
|
||
-turas</div>
|
||
501 - <div class="text-gray-400 text-xs">Tables, records, pipeline
|
||
-s. Filter, sort, merge — sin awk ni sed.</div>
|
||
502 -</div>
|
||
503 -
|
||
504 -<div class="box-highlight border-l-4 border-gray-500 pl-3 py-2
|
||
-">
|
||
505 - <div class="font-semibold text-gray-300">Bash orquesta proce
|
||
-sos</div>
|
||
506 - <div class="text-gray-400 text-xs">Locking, signals, exec. S
|
||
-olo lo que bash hace de forma nativa.</div>
|
||
507 -</div>
|
||
508 -
|
||
509 -</div>
|
||
510 -
|
||
511 -<div class="mt-4 font-mono text-xs">
|
||
512 -
|
||
513 -```nu
|
||
514 -# Constraints Hard del sistema completo
|
||
515 -glob "adrs/adr-*.ncl"
|
||
516 -| each { |f| nickel export $f | complete | get stdout }
|
||
517 -| each { from json }
|
||
518 -| where status == "Accepted"
|
||
519 -| get constraints | flatten
|
||
520 -| where severity == "Hard"
|
||
521 -```
|
||
522 -
|
||
523 -</div>
|
||
524 -
|
||
393 </v-click>
|
||
394
|
||
395 </div>
|
||
396
|
||
529 -</div>
|
||
530 -
|
||
397 <Footer />
|
||
398
|
||
399 <!--
|
||
534 -Nu is not "better bash". It is a different semantic layer.
|
||
535 -Text pipelines are broken by design — structured pipelines are
|
||
- the fix.
|
||
536 -Nickel/Nu/Bash: each covers what the others cannot. The divisi
|
||
-on is deliberate.
|
||
400 +Pausa larga después del primer par de líneas. Dejar que aterri
|
||
+ce.
|
||
401 +La gente espera que digas "la IA necesita contexto". La invers
|
||
+ión es el punto.
|
||
402 -->
|
||
403
|
||
404 ---
|
||
405 layout: default
|
||
406 ---
|
||
407
|
||
543 -# DAGs y FSMs — grafos acíclicos y máquinas de estado
|
||
408 +# Ontología ≠ lista de decisiones
|
||
409
|
||
410 <div class="grid grid-cols-2 gap-8 mt-4">
|
||
411
|
||
412 <div>
|
||
413
|
||
549 -**FSM: ciclo de vida de un ADR**
|
||
414 +**Una lista de decisiones**
|
||
415
|
||
551 -<div class="mt-3 font-mono text-xs">
|
||
416 +<div class="mt-3 font-mono text-xs text-gray-400">
|
||
417
|
||
418 ```text
|
||
554 - ┌──────────┐ adr accept ┌──────────┐
|
||
555 - │ Proposed │ ───────────▶ │ Accepted │
|
||
556 - └──────────┘ └──────────┘
|
||
557 - │ new ADR
|
||
558 - │ supersedes
|
||
559 - ▼
|
||
560 - ┌────────────┐
|
||
561 - │ Superseded │
|
||
562 - └────────────┘
|
||
419 +- Elegimos Kubernetes
|
||
420 +- Usamos Helm para despliegues
|
||
421 +- PostgreSQL como base de datos primaria
|
||
422 +- gRPC entre servicios internos
|
||
423 +- OAuth2 para autenticación externa
|
||
424 ```
|
||
425
|
||
426 </div>
|
||
427
|
||
567 -<div class="mt-3 text-sm text-gray-300">Transiciones typecheck
|
||
--enforced en Nickel:</div>
|
||
568 -
|
||
569 -<div class="font-mono text-xs mt-1">
|
||
570 -
|
||
571 -```text
|
||
572 -status | [| 'Proposed, 'Accepted, 'Superseded |]
|
||
573 -superseded_by | String | default = ""
|
||
574 -```
|
||
575 -
|
||
428 +<div class="mt-4 text-sm text-gray-500">
|
||
429 +Captura el <em>qué</em>. No captura el <em>por qué</em>,<br>
|
||
430 +las alternativas rechazadas, ni las consecuencias.
|
||
431 </div>
|
||
432
|
||
578 -<v-click>
|
||
579 -
|
||
580 -<div class="mt-4 text-xs text-gray-400">
|
||
581 -Las transiciones inválidas no existen <br>
|
||
582 -— el tipo las elimina del espacio de posibilidades.<br>
|
||
583 -Un ADR no puede volver a Proposed.<br>
|
||
584 -Superseded no puede tener constraints activas.
|
||
433 </div>
|
||
434
|
||
587 -</v-click>
|
||
588 -
|
||
589 -</div>
|
||
590 -
|
||
435 <div>
|
||
436
|
||
593 -**DAG: ontología como grafo de dependencias**
|
||
437 +<v-click>
|
||
438
|
||
595 -<div class="mt-3 font-mono text-xs text-gray-300">
|
||
439 +**Una ontología**
|
||
440
|
||
597 -```text
|
||
598 -invariante: backend-agnostic-core
|
||
599 - └─ tensión: nickel-as-canonical-schema
|
||
600 - └─ gate: nickel-primacy-gate [activa]
|
||
601 - └─ protege: nickel-integration-depth
|
||
441 +<div class="mt-3 space-y-2 text-sm">
|
||
442
|
||
603 -invariante: zero-external-runtime-core
|
||
604 - └─ gate: core-dependency-gate [activa]
|
||
605 - └─ protege: backend-agnostic-core
|
||
606 -```
|
||
443 +<div class="border-l-4 border-blue-400 pl-3 py-1 bg-gray-900 r
|
||
+ounded-r">
|
||
444 + <div class="text-blue-300 font-mono text-xs font-semibold">I
|
||
+NVARIANTES</div>
|
||
445 + <div class="text-gray-400 text-xs">Lo que no puede cambiar s
|
||
+in decisión explícita y coordinación</div>
|
||
446 +</div>
|
||
447
|
||
448 +<div class="border-l-4 border-orange-400 pl-3 py-1 bg-gray-900
|
||
+ rounded-r">
|
||
449 + <div class="text-orange-300 font-mono text-xs font-semibold"
|
||
+>TENSIONES ACTIVAS</div>
|
||
450 + <div class="text-gray-400 text-xs">Trade-offs que aún no se
|
||
+han resuelto — viven en el sistema ahora mismo</div>
|
||
451 </div>
|
||
452
|
||
610 -<v-click>
|
||
453 +<div class="border-l-4 border-purple-400 pl-3 py-1 bg-gray-900
|
||
+ rounded-r">
|
||
454 + <div class="text-purple-300 font-mono text-xs font-semibold"
|
||
+>ESTADO ACTUAL → DESEADO</div>
|
||
455 + <div class="text-gray-400 text-xs">Dimensiones de madurez. D
|
||
+ónde estás, dónde quieres estar, qué te bloquea</div>
|
||
456 +</div>
|
||
457
|
||
612 -<div class="mt-4 text-sm font-semibold text-gray-200">Por qué
|
||
-importa la aciclicidad</div>
|
||
458 +<div class="border-l-4 border-green-400 pl-3 py-1 bg-gray-900
|
||
+rounded-r">
|
||
459 + <div class="text-green-300 font-mono text-xs font-semibold">
|
||
+GATES ACTIVAS</div>
|
||
460 + <div class="text-gray-400 text-xs">Condiciones que deben cum
|
||
+plirse antes de cruzar una frontera arquitectural</div>
|
||
461 +</div>
|
||
462
|
||
614 -<div class="mt-2 space-y-1 text-sm text-gray-400">
|
||
615 -<div>→ Un invariante no puede depender de sí mismo</div>
|
||
616 -<div>→ Las gates protegen nodos hoja, no ciclos</div>
|
||
617 -<div>→ El rollback es determinista: sin ambigüedad de orden</d
|
||
-iv>
|
||
463 </div>
|
||
464
|
||
620 -<div class="mt-3 font-mono text-xs">
|
||
465 +</v-click>
|
||
466
|
||
622 -```nu
|
||
623 -# Invariantes activos
|
||
624 -nickel export .ontology/core.ncl
|
||
625 -| from json | get nodos
|
||
626 -| where invariante == true
|
||
627 -| select id descripcion
|
||
628 -```
|
||
467 +<v-click>
|
||
468
|
||
469 +<div class="mt-4 text-sm text-gray-300">
|
||
470 + Es un grafo consultable. No prosa.<br>
|
||
471 + <span class="text-gray-500 text-xs">La IA puede leerlo. Tu C
|
||
+I puede verificarlo. Tú puedes razonarlo.</span>
|
||
472 </div>
|
||
473
|
||
474 </v-click>
|
||
...
|
||
480 <Footer />
|
||
481
|
||
482 <!--
|
||
641 -State machines are architecture, not documentation.
|
||
642 -The ADR FSM has 3 states and 2 transitions — that simplicity i
|
||
-s the power.
|
||
643 -The ontology DAG is the dependency graph of semantic constrain
|
||
-ts, not a diagram.
|
||
483 +La diferencia no es el nivel de detalle — es la estructura.
|
||
484 +Un grafo tiene propiedades que la prosa no tiene: es consultab
|
||
+le, verificable, traversable.
|
||
485 -->
|
||
486
|
||
487 ---
|
||
488 layout: default
|
||
489 ---
|
||
490
|
||
650 -# La Ontología Operacional — el grafo operacional
|
||
491 +# Ontoref — tres archivos, tres preguntas
|
||
492
|
||
652 -<div class="grid grid-cols-2 gap-8 mt-4">
|
||
493 +<div class="grid grid-cols-3 gap-5 mt-6">
|
||
494
|
||
654 -<div>
|
||
495 +<div class="border border-gray-700 rounded p-4 bg-gray-900">
|
||
496
|
||
656 -**`core.ncl` — lo que no puede cambiar**
|
||
497 +<div class="text-blue-300 font-mono font-semibold text-sm mb-3
|
||
+">core.ncl</div>
|
||
498 +<div class="text-orange-400 text-xs mb-3 italic">"¿Qué ES este
|
||
+ proyecto?"</div>
|
||
499
|
||
658 -<div class="mt-2 font-mono text-xs">
|
||
500 +<div class="font-mono text-xs text-gray-400">
|
||
501
|
||
502 ```text
|
||
661 -# .ontology/core.ncl
|
||
662 -{
|
||
663 - nodos = [
|
||
664 - {
|
||
665 - id = "backend-agnostic-core",
|
||
666 - invariante = true,
|
||
667 - descripcion = "business logic sin deps de UI",
|
||
668 - tensiones = ["nickel-as-canonical-schema"],
|
||
669 - },
|
||
670 - ],
|
||
671 - practicas = [...],
|
||
672 -}
|
||
503 +invariantes:
|
||
504 + - backend-agnostic-core
|
||
505 + - zero-external-runtime
|
||
506 +
|
||
507 +tensiones:
|
||
508 + - formalization vs adoption-friction
|
||
509 + - ontology vs reflection
|
||
510 +
|
||
511 +prácticas:
|
||
512 + - nickel-as-schema-layer
|
||
513 + - nushell-as-operator
|
||
514 ```
|
||
515
|
||
516 </div>
|
||
517
|
||
677 -<div class="mt-3 text-sm text-gray-400">
|
||
678 -Tocar un nodo con <code class="text-orange-300">invariante = t
|
||
-rue</code> requiere un nuevo ADR. Sin excepción.
|
||
518 +<div class="mt-3 text-xs text-gray-600">
|
||
519 +Inmutable sin ADR nuevo.
|
||
520 </div>
|
||
521
|
||
522 </div>
|
||
523
|
||
683 -<div>
|
||
524 +<div class="border border-gray-700 rounded p-4 bg-gray-900">
|
||
525
|
||
685 -**`state.ncl` y `gate.ncl` — dónde estamos**
|
||
526 +<div class="text-orange-300 font-mono font-semibold text-sm mb
|
||
+-3">state.ncl</div>
|
||
527 +<div class="text-orange-400 text-xs mb-3 italic">"¿Dónde ESTAM
|
||
+OS?"</div>
|
||
528
|
||
687 -<v-click>
|
||
529 +<div class="font-mono text-xs text-gray-400">
|
||
530
|
||
689 -<div class="mt-2 font-mono text-xs">
|
||
531 +```text
|
||
532 +dimensiones:
|
||
533 + backend-maturity:
|
||
534 + actual: multi-stable
|
||
535 + deseado: all-production
|
||
536 + bloqueador: missing-nats-tests
|
||
537
|
||
691 -```nu
|
||
692 -nickel export .ontology/state.ncl
|
||
693 -| from json | get dimensiones
|
||
694 -| select id estado_actual estado_deseado
|
||
538 + nickel-depth:
|
||
539 + actual: schema-input
|
||
540 + deseado: bidirectional
|
||
541 + catalizador: export pipeline
|
||
542 ```
|
||
543
|
||
544 </div>
|
||
545
|
||
699 -<div class="mt-2 font-mono text-xs text-gray-400">
|
||
546 +<div class="mt-3 text-xs text-gray-600">
|
||
547 +Evoluciona con el proyecto.
|
||
548 +</div>
|
||
549
|
||
701 -```text
|
||
702 -backend-maturity multi-stable → all-production
|
||
703 -nickel-integration-depth schema-input → bidirectional
|
||
704 -```
|
||
705 -
|
||
550 </div>
|
||
551
|
||
708 -</v-click>
|
||
552 +<div class="border border-gray-700 rounded p-4 bg-gray-900">
|
||
553
|
||
710 -<v-click>
|
||
554 +<div class="text-green-300 font-mono font-semibold text-sm mb-
|
||
+3">gate.ncl</div>
|
||
555 +<div class="text-orange-400 text-xs mb-3 italic">"¿Cuándo esta
|
||
+mos LISTOS?"</div>
|
||
556
|
||
712 -<div class="mt-4 font-mono text-xs">
|
||
557 +<div class="font-mono text-xs text-gray-400">
|
||
558
|
||
714 -```nu
|
||
715 -nickel export .ontology/gate.ncl
|
||
716 -| from json | get membranas
|
||
717 -| where activa == true
|
||
718 -| select id permeabilidad protege
|
||
559 +```text
|
||
560 +gates:
|
||
561 + core-dependency-gate:
|
||
562 + activa: true
|
||
563 + permeabilidad: Low
|
||
564 + protege:
|
||
565 + - backend-agnostic-core
|
||
566 +
|
||
567 + nickel-primacy-gate:
|
||
568 + activa: true
|
||
569 + permeabilidad: Low
|
||
570 + protege:
|
||
571 + - nickel-as-schema-layer
|
||
572 ```
|
||
573
|
||
574 </div>
|
||
575
|
||
723 -<div class="mt-2 font-mono text-xs text-gray-400">
|
||
724 -
|
||
725 -```text
|
||
726 -core-dependency-gate Low [backend-agnostic-core, ...]
|
||
727 -nickel-primacy-gate Low [nickel-as-canonical-schema]
|
||
728 -```
|
||
729 -
|
||
576 +<div class="mt-3 text-xs text-gray-600">
|
||
577 +Condiciones de cruce.
|
||
578 </div>
|
||
579
|
||
732 -</v-click>
|
||
733 -
|
||
734 -<div class="mt-3 text-xs text-gray-500">
|
||
735 -La ontología no es un diagrama.<br>
|
||
736 -Es un grafo consultable que el sistema y los agentes leen.
|
||
580 </div>
|
||
581
|
||
582 </div>
|
||
583
|
||
584 +<v-click>
|
||
585 +
|
||
586 +<div class="mt-5 font-mono text-xs text-center text-gray-500">
|
||
587 + Nickel tipado · exportable como JSON · consultable desde Nu
|
||
+· verificable en CI
|
||
588 </div>
|
||
589
|
||
590 +</v-click>
|
||
591 +
|
||
592 <Footer />
|
||
593
|
||
594 <!--
|
||
746 -The .ontology/ directory separates three orthogonal concerns i
|
||
-n three files:
|
||
747 - core.ncl — what the project IS: invariant axioms and struct
|
||
-ural tensions.
|
||
748 - state.ncl — where it IS vs where it wants to BE.
|
||
749 - gate.ncl — when it is READY to cross a boundary.
|
||
750 -
|
||
751 -reflection/ reads all three and answers self-knowledge queries
|
||
-.
|
||
752 -This separation allows an agent to understand the project with
|
||
-out reading code —
|
||
753 -only by consulting the declarative graph.
|
||
595 +Tres preguntas, tres responsabilidades. La separación es delib
|
||
+erada.
|
||
596 +core.ncl responde al SER. state.ncl al DEVENIR. gate.ncl al CR
|
||
+UZAR.
|
||
597 +Cada uno puede cambiar a ritmos diferentes sin contaminar los
|
||
+otros.
|
||
598 -->
|
||
599
|
||
600 ---
|
||
601 layout: default
|
||
602 ---
|
||
603
|
||
760 -# Reflection — modos, formas, módulos, perfiles
|
||
604 +# Reflection — lo que se CONVIERTE
|
||
605
|
||
762 -<div class="grid grid-cols-2 gap-8 -mt-5">
|
||
606 +<div class="grid grid-cols-2 gap-8 mt-2">
|
||
607
|
||
608 <div>
|
||
609
|
||
766 -**Modo: especificación ejecutable**
|
||
610 +**Ontología = lo que ES**
|
||
611
|
||
768 -<div class="mt-1 font-mono text-xs">
|
||
769 -
|
||
770 -```bash
|
||
771 -# reflection/modes/new_service.ncl
|
||
772 -{
|
||
773 - id = "new_service",
|
||
774 - trigger = "When adding a service",
|
||
775 - steps = [
|
||
776 - {
|
||
777 - id = "create-adr",
|
||
778 - actor = "developer",
|
||
779 - action = "Draft ADR for service boundary",
|
||
780 - cmd = "stratum form new_adr",
|
||
781 - on_error = { strategy = "abort" },
|
||
782 - },
|
||
783 - {
|
||
784 - id = "seal-config",
|
||
785 - actor = "developer",
|
||
786 - action = "Apply initial config seal",
|
||
787 - cmd = "stratum config apply development",
|
||
788 - depends_on = [{ step = "create-adr" }],
|
||
789 - on_error = { strategy = "abort" },
|
||
790 - },
|
||
791 - ],
|
||
792 -}
|
||
793 -```
|
||
794 -
|
||
612 +<div class="mt-3 text-sm text-gray-400 space-y-2">
|
||
613 +<div>→ Invariantes — verdad estructural</div>
|
||
614 +<div>→ Tensiones — trade-offs vivos</div>
|
||
615 +<div>→ Estado — dónde estamos ahora</div>
|
||
616 </div>
|
||
617
|
||
797 -</div>
|
||
618 +<div class="mt-5 text-sm font-semibold text-gray-200">Reflecti
|
||
+on = lo que DEVIENE</div>
|
||
619
|
||
799 -<div>
|
||
800 -
|
||
801 -**Forma: entrada estructurada tipada**
|
||
802 -
|
||
803 -<div class="mt-2 font-mono text-xs">
|
||
804 -
|
||
805 -```bash
|
||
806 -# reflection/forms/register_change.ncl
|
||
807 -{
|
||
808 - elements = [
|
||
809 - { type = "section_header", label = "Change" },
|
||
810 - {
|
||
811 - type = "text",
|
||
812 - id = "title",
|
||
813 - label = "Title",
|
||
814 - required = true,
|
||
815 - },
|
||
816 - {
|
||
817 - type = "select",
|
||
818 - id = "change_type",
|
||
819 - options = ["feature","fix","refactor","config"],
|
||
820 - },
|
||
821 - ]
|
||
822 -}
|
||
823 -```
|
||
824 -
|
||
620 +<div class="mt-3 text-sm text-gray-400 space-y-2">
|
||
621 +<div>→ Modos operacionales — secuencias con DAG de dependencia
|
||
+s</div>
|
||
622 +<div>→ ADRs con constraints tipadas — decisiones vivas, no pro
|
||
+sa</div>
|
||
623 +<div>→ Backlog estructurado — tensiones → tareas</div>
|
||
624 +<div>→ Historial de sesiones — quién hizo qué y cuándo</div>
|
||
625 </div>
|
||
626
|
||
627 <v-click>
|
||
628
|
||
829 -<div class="mt-3 space-y-2 text-sm">
|
||
830 -
|
||
831 -<div class="box-highlight border-l-4 border-purple-500 pl-3 py
|
||
--1">
|
||
832 - <div class="font-semibold text-purple-300">Perfil de config
|
||
-= estado sellado</div>
|
||
833 - <div class="text-gray-400 text-xs"><code>sha256(nickel expor
|
||
-t profile.ncl)</code> — drift detection instantánea</div>
|
||
629 +<div class="mt-5 border-l-4 border-orange-500 pl-4 text-sm tex
|
||
+t-gray-300">
|
||
630 + La ontología captura el <em>ser</em>.<br>
|
||
631 + La reflection captura el <em>operar sobre ese ser</em>.
|
||
632 </div>
|
||
633
|
||
836 -<div class="text-xs text-gray-400 mt-2">
|
||
837 -<code>stratum config verify development</code> → compara hash
|
||
-actual con hash sellado
|
||
838 -</div>
|
||
839 -
|
||
840 -</div>
|
||
841 -
|
||
634 </v-click>
|
||
635
|
||
636 </div>
|
||
637
|
||
846 -</div>
|
||
847 -
|
||
848 -<Footer />
|
||
849 -
|
||
850 -<!--
|
||
851 -Modes are not runbooks. They are typed, versioned, queryable o
|
||
-perational specifications.
|
||
852 -Forms are the structured capture layer — TypeDialog renders th
|
||
-em across CLI/TUI/Web backends.
|
||
853 -Config profiles seal the observable state with a cryptographic
|
||
- fingerprint.
|
||
854 --->
|
||
855 -
|
||
856 ----
|
||
857 -layout: default
|
||
858 ----
|
||
859 -
|
||
860 -# ADRs vivos
|
||
861 -## — de documento muerto a constraint machine
|
||
862 -
|
||
863 -<div class="grid grid-cols-2 gap-8 mt-1">
|
||
864 -
|
||
638 <div>
|
||
639
|
||
867 -**Estructura Nickel de un ADR**
|
||
640 +<v-click>
|
||
641
|
||
869 -<div class="-mt-2 font-mono text-xs">
|
||
642 +**Un modo como especificación ejecutable**
|
||
643
|
||
644 +<div class="mt-3 font-mono text-xs">
|
||
645 +
|
||
646 ```bash
|
||
872 -# adrs/adr-001-nickel-as-canonical.ncl
|
||
873 -let s = import "adrs/schema.ncl" in
|
||
647 +# reflection/modes/new_service.ncl
|
||
648 {
|
||
875 - id = "adr-001",
|
||
876 - title = "Nickel as First-Class Form Definition",
|
||
877 - status = "Accepted",
|
||
878 - date = "2025-12-01",
|
||
879 - constraints = [
|
||
649 + id = "new_service",
|
||
650 + trigger = "When adding a new service boundary",
|
||
651 + steps = [
|
||
652 {
|
||
881 - id = "adr-001-c1",
|
||
882 - severity = "Hard",
|
||
883 - claim =
|
||
884 - "nickel export must succeed before "
|
||
885 - ++ "any user interaction",
|
||
653 + id = "draft-adr",
|
||
654 + actor = "developer",
|
||
655 + action = "Draft ADR for service boundary decision",
|
||
656 },
|
||
657 + {
|
||
658 + id = "verify-invariants",
|
||
659 + actor = "agent",
|
||
660 + action = "Check no invariant is violated",
|
||
661 + depends_on = [{ step = "draft-adr" }],
|
||
662 + },
|
||
663 + {
|
||
664 + id = "seal-config",
|
||
665 + actor = "developer",
|
||
666 + action = "Apply initial config seal",
|
||
667 + depends_on = [{ step = "verify-invariants" }],
|
||
668 + },
|
||
669 ],
|
||
888 - superseded_by = "",
|
||
889 -} | s.ADR
|
||
670 +}
|
||
671 ```
|
||
672
|
||
673 </div>
|
||
674
|
||
675 +<div class="mt-2 text-xs text-gray-500">
|
||
676 +No es un runbook. Es un grafo acíclico tipado.<br>
|
||
677 +La IA lo ejecuta. El sistema lo valida.
|
||
678 </div>
|
||
679
|
||
896 -<div>
|
||
897 -
|
||
898 -<p class="-mt-2 text-sm font-semibold text-gray-200"> Ciclo de
|
||
- vida y consulta </p>
|
||
899 -
|
||
900 -<div class="-mt-2 font-mono text-xs text-gray-300">
|
||
901 -
|
||
902 -```text
|
||
903 -Proposed ──────▶ Accepted ──────▶ Superseded
|
||
904 - │ ▲
|
||
905 - │ new ADR │
|
||
906 - └──────── superseded_by ────────────┘
|
||
907 -```
|
||
908 -
|
||
909 -</div>
|
||
910 -
|
||
911 -<v-click>
|
||
912 -
|
||
913 -<div class="mt-2 text-sm font-semibold text-gray-200">Constrai
|
||
-nts Hard activas del sistema</div>
|
||
914 -
|
||
915 -<div class="mt-2 font-mono text-xs">
|
||
916 -
|
||
917 -```nu
|
||
918 -glob "adrs/adr-*.ncl"
|
||
919 -| each { |f|
|
||
920 - nickel export $f | complete
|
||
921 - | if $in.exit_code == 0 {
|
||
922 - $in.stdout | from json
|
||
923 - } else { null }
|
||
924 - }
|
||
925 -| compact
|
||
926 -| where status == "Accepted"
|
||
927 -| get constraints | flatten
|
||
928 -| where severity == "Hard"
|
||
929 -| select id claim
|
||
930 -```
|
||
931 -
|
||
932 -</div>
|
||
933 -
|
||
680 </v-click>
|
||
681
|
||
936 -<v-click>
|
||
937 -
|
||
938 -<div class="mt-3 text-xs text-gray-500">
|
||
939 -El conjunto activo de constraints es el contrato en vigor — no
|
||
- la prosa del ADR.
|
||
940 -La prosa explica el porqué. Los constraints enforcan el qué.
|
||
682 </div>
|
||
683
|
||
943 -</v-click>
|
||
944 -
|
||
684 </div>
|
||
685
|
||
947 -</div>
|
||
948 -
|
||
686 <Footer />
|
||
687
|
||
688 <!--
|
||
952 -"Living ADRs" is not a metaphor.
|
||
953 -The machine can query them, validate against them, and enforce
|
||
- them.
|
||
954 -The prose explains why. The constraints enforce what.
|
||
689 +La dualidad ontología/reflection es la tensión central de onto
|
||
+ref.
|
||
690 +No pueden fusionarse — tienen ritmos de cambio diferentes y au
|
||
+diencias diferentes.
|
||
691 +La reflection sin ontología es procedimiento sin semántica. La
|
||
+ ontología sin reflection es diagrama muerto.
|
||
692 -->
|
||
693
|
||
694 ---
|
||
695 layout: default
|
||
696 ---
|
||
697
|
||
961 -# Implementación — las partes y cómo encajan
|
||
698 +# La IA como actor, no como oráculo
|
||
699
|
||
700 <div class="grid grid-cols-2 gap-8 mt-4">
|
||
701
|
||
702 <div>
|
||
703
|
||
967 -**Stack de archivos operativos**
|
||
704 +**Sin ontología formalizada**
|
||
705
|
||
969 -<div class="mt-2 font-mono text-xs text-gray-300">
|
||
706 +<div class="mt-3 font-mono text-xs">
|
||
707
|
||
708 ```bash
|
||
972 -stratum.sh ← entry point, locking, env
|
||
973 - └─ reflection/bin/stratum.nu ← dispatcher
|
||
974 - ├─ modules/adr.nu ← ADR lifecycle
|
||
975 - ├─ modules/register.nu ← CHANGELOG + ontology
|
||
976 - ├─ modules/config.nu ← sealed profiles
|
||
977 - ├─ modules/backlog.nu ← backlog items
|
||
978 - └─ modules/forms.nu ← TypeDialog integrated
|
||
709 +# Lo que el agente recibe
|
||
710 +"Ayúdame a escalar este servicio"
|
||
711
|
||
980 -.ontology/ ← queryable truth
|
||
981 - ├─ core.ncl ← invariants
|
||
982 - ├─ state.ncl ← dimensions
|
||
983 - └─ gate.ncl ← active guards
|
||
712 +# Lo que el agente asume
|
||
713 +- que puede añadir réplicas libremente
|
||
714 +- que el estado actual es el deseado
|
||
715 +- que no hay restricciones de org
|
||
716 +- que la decisión de diciembre es irrelevante
|
||
717
|
||
985 -adrs/ ← typed decisions
|
||
986 -reflection/configs/ ← sealed config history
|
||
718 +# Lo que genera
|
||
719 +resource "google_compute_instance" {
|
||
720 + count = 5 # razonable, ¿no?
|
||
721 +}
|
||
722 ```
|
||
723
|
||
724 </div>
|
||
...
|
||
727
|
||
728 <div>
|
||
729
|
||
995 -**Flujo de escritura protegida**
|
||
996 -
|
||
730 <v-click>
|
||
731
|
||
999 -<div class="mt-2 space-y-2 text-sm">
|
||
732 +**Con ontología formalizada**
|
||
733
|
||
1001 -<div class="box-highlight border-l-4 border-gray-600 pl-3 py-
|
||
-1">
|
||
1002 - <div class="font-semibold text-gray-200">stratum.sh</div>
|
||
1003 - <div class="text-gray-400 text-xs">detect actor → acquire l
|
||
-ock (mkdir) → delegate → release</div>
|
||
1004 -</div>
|
||
734 +<div class="mt-3 font-mono text-xs">
|
||
735
|
||
1006 -<div class="box-highlight border-l-4 border-orange-500 pl-3 p
|
||
-y-1">
|
||
1007 - <div class="font-semibold text-orange-300">Lock resources</
|
||
-div>
|
||
1008 - <div class="text-gray-400 text-xs"><code>manifest</code> (c
|
||
-onfig apply/rollback) · <code>changelog</code> (register) · <
|
||
-code>backlog</code> (done/cancel)</div>
|
||
1009 -</div>
|
||
736 +```bash
|
||
737 +# Lo que el agente recibe (SessionStart hook)
|
||
738 +INVARIANT: max-replicas-per-zone = 2
|
||
739 +TENSION: scaling vs consistency [unresolved]
|
||
740 +CONSTRAINT (adr-003): no horizontal scaling
|
||
741 + without explicit capacity review
|
||
742 +STATE: backend-maturity = single-stable
|
||
743 + → desired: multi-stable
|
||
744 + → blocker: capacity-review-pending
|
||
745
|
||
1011 -<div class="box-highlight border-l-4 border-blue-500 pl-3 py-
|
||
-1">
|
||
1012 - <div class="font-semibold text-blue-300">Timestamp IDs</div
|
||
->
|
||
1013 - <div class="text-gray-400 text-xs"><code>cfg-20260309T04520
|
||
-6-developer</code> — colisión imposible, sin TOCTOU</div>
|
||
1014 -</div>
|
||
746 +# Lo que el agente puede hacer
|
||
747 +- Preguntar si procede dado el bloqueador
|
||
748 +- Generar la config dentro de los límites
|
||
749 +- Indicar que el ADR debe revisarse antes
|
||
750 +```
|
||
751
|
||
752 </div>
|
||
753
|
||
...
|
||
755
|
||
756 <v-click>
|
||
757
|
||
1022 -<div class="mt-4 font-mono text-xs text-gray-400">
|
||
1023 -
|
||
1024 -```bash
|
||
1025 -# Advisory lock: mkdir es POSIX-atómico
|
||
1026 -mkdir .stratumiops/locks/manifest.lock 2>/dev/null
|
||
1027 -echo "$$:developer:$(date -u +%Y%m%dT%H%M%SZ)"
|
||
1028 - > .stratumiops/locks/manifest.lock/owner
|
||
1029 -```
|
||
1030 -
|
||
758 +<div class="mt-4 border-l-4 border-green-500 pl-4 text-sm tex
|
||
+t-gray-300">
|
||
759 + El agente opera sobre lo que tú ya clarificaste.<br>
|
||
760 + <span class="text-gray-500 text-xs">Deja de inventarse cont
|
||
+exto porque tú dejaste de tenerlo implícito.</span>
|
||
761 </div>
|
||
762
|
||
763 </v-click>
|
||
...
|
||
769 <Footer />
|
||
770
|
||
771 <!--
|
||
1042 -Implementation is derived from architecture — not the other w
|
||
-ay around.
|
||
1043 -Every piece exists because a specific problem required it.
|
||
1044 -The lock is 4 lines of bash because mkdir is atomic on POSIX.
|
||
- No daemon needed.
|
||
772 +El SessionStart hook en ontoref inyecta el contexto ontológic
|
||
+o al inicio de cada sesión.
|
||
773 +El agente no es más inteligente — tiene más información real
|
||
+y menos que inventar.
|
||
774 +La mejora no es de la IA. Es tuya: formalizaste algo que ante
|
||
+s vivía solo en tu cabeza.
|
||
775 -->
|
||
776
|
||
777 ---
|
||
778 layout: default
|
||
779 ---
|
||
780
|
||
1051 -# Mecánica y flujo — casos de uso reales
|
||
781 +# ¿Quién mantiene esto actualizado?
|
||
782
|
||
1053 -<div class="grid grid-cols-2 gap-8 mt-4">
|
||
783 +<div class="mt-4 text-lg text-gray-400 text-center">La pregun
|
||
+ta que siempre sale.</div>
|
||
784
|
||
785 +<div class="grid grid-cols-2 gap-8 mt-6">
|
||
786 +
|
||
787 <div>
|
||
788
|
||
1057 -**Flujo: registrar un cambio**
|
||
789 +**El problema real con el README**
|
||
790
|
||
1059 -<div class="mt-2 text-xs space-y-1">
|
||
791 +<div class="mt-3 space-y-2 text-sm text-gray-400">
|
||
792
|
||
1061 -<div class="flex items-start gap-2 mt-1">
|
||
1062 - <span class="text-orange-400 font-mono font-bold">①</span>
|
||
1063 - <div><code>stratum register</code> → forma TypeDialog inter
|
||
-activa</div>
|
||
1064 -</div>
|
||
1065 -
|
||
793 <div class="flex items-start gap-2">
|
||
1067 - <span class="text-orange-400 font-mono font-bold">②</span>
|
||
1068 - <div>Clasificar: tipo de cambio, impacto, ADR relacionado</
|
||
-div>
|
||
794 + <span class="text-red-400">✗</span>
|
||
795 + <div>Nadie tiene incentivo para actualizarlo — no está en e
|
||
+l path crítico</div>
|
||
796 </div>
|
||
797
|
||
798 <div class="flex items-start gap-2">
|
||
1072 - <span class="text-orange-400 font-mono font-bold">③</span>
|
||
1073 - <div>Artefacto: entrada CHANGELOG + stub ADR si aplica</div
|
||
->
|
||
799 + <span class="text-red-400">✗</span>
|
||
800 + <div>No hay señal de cuando está desactualizado</div>
|
||
801 </div>
|
||
802
|
||
803 <div class="flex items-start gap-2">
|
||
1077 - <span class="text-orange-400 font-mono font-bold">④</span>
|
||
1078 - <div>Verificar: <code>nickel typecheck</code> debe pasar</d
|
||
-iv>
|
||
804 + <span class="text-red-400">✗</span>
|
||
805 + <div>Actualizar requiere fricción de escritura libre</div>
|
||
806 </div>
|
||
807
|
||
808 <div class="flex items-start gap-2">
|
||
1082 - <span class="text-orange-400 font-mono font-bold">⑤</span>
|
||
1083 - <div>Sellar si afecta config: <code>stratum config apply</c
|
||
-ode></div>
|
||
809 + <span class="text-red-400">✗</span>
|
||
810 + <div>No hay verificación — puede divergir silenciosamente</
|
||
+div>
|
||
811 </div>
|
||
812
|
||
813 </div>
|
||
814
|
||
1088 -<v-click>
|
||
1089 -
|
||
1090 -<div class="mt-4 text-sm font-semibold text-gray-200">Detecci
|
||
-ón de drift</div>
|
||
1091 -
|
||
1092 -<div class="mt-2 font-mono text-xs">
|
||
1093 -
|
||
1094 -```nu
|
||
1095 -stratum config apply production --adr adr-006 --pr 42
|
||
1096 -# Meses después:
|
||
1097 -stratum config verify production
|
||
1098 -# → ✓ verified a3f7c12d8b4e9f01...
|
||
1099 -# → ✗ DRIFT DETECTED stored vs current hash
|
||
1100 -```
|
||
1101 -
|
||
815 </div>
|
||
816
|
||
1104 -</v-click>
|
||
1105 -
|
||
1106 -</div>
|
||
1107 -
|
||
817 <div>
|
||
818
|
||
1110 -**Rollback verificado**
|
||
1111 -
|
||
819 <v-click>
|
||
820
|
||
1114 -<div class="mt-2 font-mono text-xs">
|
||
821 +**El diseño de ontoref**
|
||
822
|
||
1116 -```nu
|
||
1117 -stratum config history production
|
||
823 +<div class="mt-3 space-y-2 text-sm">
|
||
824
|
||
1119 -stratum config rollback production \
|
||
1120 - cfg-20260301T120000-developer \
|
||
1121 - --adr adr-007 \
|
||
1122 - --note "revert breaking change"
|
||
1123 -```
|
||
1124 -
|
||
825 +<div class="border-l-4 border-blue-400 pl-3 py-1 bg-gray-900
|
||
+rounded-r">
|
||
826 + <div class="text-blue-300 font-semibold text-xs">Pre-commit
|
||
+ como sincronización forzada</div>
|
||
827 + <div class="text-gray-400 text-xs"><code>nickel typecheck</
|
||
+code> en cada commit — la capa declarativa nunca queda rota</
|
||
+div>
|
||
828 </div>
|
||
829
|
||
1127 -</v-click>
|
||
1128 -
|
||
1129 -<v-click>
|
||
1130 -
|
||
1131 -<div class="mt-3 text-xs text-gray-400 space-y-1">
|
||
1132 -<div>→ <code>snapshot_hash</code> verifica integridad antes d
|
||
-e restaurar</div>
|
||
1133 -<div>→ Rollback genera nuevo sello — la historia es append-on
|
||
-ly</div>
|
||
1134 -<div>→ Trazabilidad completa: ADR + PR + bug en cada sello</d
|
||
-iv>
|
||
830 +<div class="border-l-4 border-orange-400 pl-3 py-1 bg-gray-90
|
||
+0 rounded-r">
|
||
831 + <div class="text-orange-300 font-semibold text-xs">Modos co
|
||
+mo procedimientos obligatorios</div>
|
||
832 + <div class="text-gray-400 text-xs">Añadir un servicio ejecu
|
||
+ta el modo — el ADR se escribe como parte del proceso</div>
|
||
833 </div>
|
||
834
|
||
1137 -<div class="mt-4 font-mono text-xs text-gray-500">
|
||
1138 -
|
||
1139 -```text
|
||
1140 -cfg-20260301T120000-developer (original)
|
||
1141 - └─ cfg-20260309T045206-agent (change)
|
||
1142 - └─ cfg-20260309T120000-developer (rollback)
|
||
1143 -```
|
||
1144 -
|
||
835 +<div class="border-l-4 border-purple-400 pl-3 py-1 bg-gray-90
|
||
+0 rounded-r">
|
||
836 + <div class="text-purple-300 font-semibold text-xs">Drift de
|
||
+tection</div>
|
||
837 + <div class="text-gray-400 text-xs"><code>sha256(nickel expo
|
||
+rt)</code> — sabes cuándo el estado sellado difiere del actua
|
||
+l</div>
|
||
838 </div>
|
||
839
|
||
1147 -</v-click>
|
||
1148 -
|
||
840 +<div class="border-l-4 border-green-400 pl-3 py-1 bg-gray-900
|
||
+ rounded-r">
|
||
841 + <div class="text-green-300 font-semibold text-xs">ADRs como
|
||
+ constraints, no prosa</div>
|
||
842 + <div class="text-gray-400 text-xs">El constraint es machine
|
||
+-readable — el CI puede verificarlo, no solo leerlo</div>
|
||
843 </div>
|
||
844
|
||
845 </div>
|
||
846
|
||
1153 -<Footer />
|
||
1154 -
|
||
1155 -<!--
|
||
1156 -Walk through a real scenario. The audience needs to see the f
|
||
-low, not just the components.
|
||
1157 -Drift detection is the killer feature: no guessing what chang
|
||
-ed in production.
|
||
1158 --->
|
||
1159 -
|
||
1160 ----
|
||
1161 -layout: default
|
||
1162 ----
|
||
1163 -
|
||
1164 -# Integración en proyectos — onboarding al ecosistema
|
||
1165 -
|
||
1166 -<div class="grid grid-cols-2 gap-8 mt-4">
|
||
1167 -
|
||
1168 -<div>
|
||
1169 -
|
||
1170 -**Lo que un proyecto necesita**
|
||
1171 -
|
||
1172 -<div class="mt-2 font-mono text-xs text-gray-300">
|
||
1173 -
|
||
1174 -```bash
|
||
1175 -proyecto/
|
||
1176 - .ontology/
|
||
1177 - core.ncl ← invariants del proyecto
|
||
1178 - state.ncl ← dimensiones de madurez
|
||
1179 - gate.ncl ← guards activos
|
||
1180 - adrs/
|
||
1181 - schema.ncl
|
||
1182 - reflection.ncl
|
||
1183 - adr-001-*.ncl ← ADR fundacional
|
||
1184 - reflection/
|
||
1185 - forms/ ← TypeDialog forms
|
||
1186 - modes/ ← operational modes
|
||
1187 - configs/ ← sealed profiles
|
||
1188 - modules/ ← Nu modules
|
||
1189 - bin/stratum.nu
|
||
1190 - stratum.sh
|
||
1191 -```
|
||
1192 -
|
||
1193 -</div>
|
||
1194 -
|
||
1195 -</div>
|
||
1196 -
|
||
1197 -<div>
|
||
1198 -
|
||
1199 -**Inicialización**
|
||
1200 -
|
||
1201 -<v-click>
|
||
1202 -
|
||
1203 -<div class="mt-2 text-xs space-y-2">
|
||
1204 -
|
||
1205 -<div class="box-highlight border-l-4 border-green-500 pl-3 py
|
||
--1">
|
||
1206 - <div class="font-semibold text-green-300">Comando de onboar
|
||
-ding</div>
|
||
1207 - <div class="font-mono text-gray-400 text-xs mt-1"><code>/on
|
||
-board-project</code> → genera <code>.ontology/ <br></code> +
|
||
-ADR fundacional</div>
|
||
1208 -</div>
|
||
1209 -
|
||
1210 -<div class="box-highlight border-l-4 border-blue-500 pl-3 py-
|
||
-1">
|
||
1211 - <div class="font-semibold text-blue-300">Primer ADR obligat
|
||
-orio</div>
|
||
1212 - <div class="text-gray-400 text-xs">Define las invariantes —
|
||
- qué no puede cambiar sin ADR nuevo</div>
|
||
1213 -</div>
|
||
1214 -
|
||
1215 -<div class="box-highlight border-l-4 border-orange-400 pl-3 p
|
||
-y-1">
|
||
1216 - <div class="font-semibold text-orange-300">Pre-commit como
|
||
-sincronización</div>
|
||
1217 - <div class="text-gray-400 text-xs"><code>nickel typecheck</
|
||
-code> en cada commit<br> — la capa declarativa nunca queda ro
|
||
-ta</div>
|
||
1218 -</div>
|
||
1219 -
|
||
1220 -</div>
|
||
1221 -
|
||
847 </v-click>
|
||
848
|
||
849 <v-click>
|
||
850
|
||
1226 -<div class="mt-4 font-mono text-xs">
|
||
1227 -
|
||
1228 -```bash
|
||
1229 -./stratum.sh check
|
||
1230 -# ✓ nushell 0.110.0
|
||
1231 -# ✓ nickel 1.9.0
|
||
1232 -# ✓ .ontology/core.ncl exportable
|
||
1233 -# ✓ adrs/adr-001 Accepted
|
||
1234 -# ✗ no sealed config profiles yet
|
||
1235 -```
|
||
1236 -
|
||
851 +<div class="mt-4 text-xs text-gray-500 border-l-2 border-gray
|
||
+-700 pl-3">
|
||
852 + La ontología se mantiene porque es el path.<br>
|
||
853 + No porque alguien sea disciplinado.
|
||
854 </div>
|
||
855
|
||
856 </v-click>
|
||
...
|
||
862 <Footer />
|
||
863
|
||
864 <!--
|
||
1248 -Onboarding is a contract, not a tutorial.
|
||
1249 -The system tells the project what it needs via `stratum check
|
||
-`.
|
||
1250 -The foundational ADR is the project's semantic constitution.
|
||
865 +Esta es la objeción más honesta del público. Abrazarla, no es
|
||
+quivarla.
|
||
866 +La respuesta no es "la gente debería ser más disciplinada".
|
||
867 +La respuesta es: el sistema lo hace obligatorio, no opcional.
|
||
868 -->
|
||
869
|
||
870 ---
|
||
871 layout: default
|
||
872 ---
|
||
873
|
||
1257 -# Integración con Claude Code & Uso concurrente
|
||
874 +# Para el debate
|
||
875
|
||
1259 -<div class="grid grid-cols-2 gap-8 mt-4">
|
||
876 +<div class="grid grid-cols-2 gap-8 mt-6">
|
||
877
|
||
878 <div>
|
||
879
|
||
1263 -**SessionStart: contexto automático**
|
||
880 +**Propuesta 1 — Ontología**
|
||
881
|
||
1265 -<div class="mt-2 text-xs text-gray-300">
|
||
1266 -<code>stratum-session-start.sh</code> se ejecuta al inicio de
|
||
- cada sesión:
|
||
882 +<div class="mt-4 space-y-4">
|
||
883 +
|
||
884 +<div class="border border-gray-700 rounded p-3 bg-gray-900">
|
||
885 + <div class="text-orange-300 text-sm font-semibold">¿No es s
|
||
+uficiente con un buen README?</div>
|
||
886 + <div class="text-gray-500 text-xs mt-1">¿Cuándo fue la últi
|
||
+ma vez que el tuyo estaba al día?</div>
|
||
887 </div>
|
||
888
|
||
1269 -<div class="mt-2 font-mono text-xs">
|
||
889 +<div class="border border-gray-700 rounded p-3 bg-gray-900">
|
||
890 + <div class="text-orange-300 text-sm font-semibold">¿Qué dif
|
||
+erencia una ontología de una lista de decisiones?</div>
|
||
891 + <div class="text-gray-500 text-xs mt-1">Estructura, consult
|
||
+abilidad, verificabilidad.</div>
|
||
892 +</div>
|
||
893
|
||
1271 -```bash
|
||
1272 -=== STRATUM CONTEXT: typedialog ===
|
||
894 +<div class="border border-gray-700 rounded p-3 bg-gray-900">
|
||
895 + <div class="text-orange-300 text-sm font-semibold">¿Quién m
|
||
+antiene esto cuando el proyecto cambia rápido?</div>
|
||
896 + <div class="text-gray-500 text-xs mt-1">El diseño lo hace o
|
||
+bligatorio, no opcional.</div>
|
||
897 +</div>
|
||
898
|
||
1274 -ADRS
|
||
1275 - adr-001 [Accepted] Nickel as First-Class Form...
|
||
1276 - adr-002 [Accepted] NCL element order from position
|
||
1277 -
|
||
1278 -HARD CONSTRAINTS
|
||
1279 - adr-001-c1 nickel export must succeed before...
|
||
1280 - adr-002-c1 web/tui must render headers interleaved
|
||
1281 -
|
||
1282 -STATE
|
||
1283 - backend-maturity: multi-stable → all-production
|
||
1284 -
|
||
1285 -ACTIVE GATES
|
||
1286 - nickel-primacy-gate [Low] Protects: nickel-as-...
|
||
1287 -
|
||
1288 -=== END STRATUM CONTEXT ===
|
||
1289 -```
|
||
1290 -
|
||
899 </div>
|
||
900
|
||
901 </div>
|
||
902
|
||
903 <div>
|
||
904
|
||
1297 -**Uso concurrente: humano + agente IA**
|
||
905 +**Propuesta 2 — Infra + IA**
|
||
906
|
||
1299 -<v-click>
|
||
907 +<div class="mt-4 space-y-4">
|
||
908
|
||
1301 -<div class="mt-4 space-y-4 text-sm">
|
||
1302 -
|
||
1303 -<div class="box-highlight border-l-4 border-blue-500 pl-3 py-
|
||
-1">
|
||
1304 - <div class="font-semibold text-blue-300">IDs timestamp con
|
||
-actor</div>
|
||
1305 - <div class="font-mono text-gray-400 text-xs">cfg-20260309T0
|
||
-45206-developer<br>cfg-20260309T045207-agent</div>
|
||
1306 - <div class="text-gray-400 text-xs">Sin coordinador. Sin TOC
|
||
-TOU. Trazabilidad por actor.</div>
|
||
909 +<div class="border border-gray-700 rounded p-3 bg-gray-900">
|
||
910 + <div class="text-orange-300 text-sm font-semibold">¿Es dife
|
||
+rente a copiar Stack Overflow?</div>
|
||
911 + <div class="text-gray-500 text-xs mt-1">En SO buscabas. Con
|
||
+ la IA, delegas también la búsqueda.</div>
|
||
912 </div>
|
||
913
|
||
1309 -<div class="box-highlight border-l-4 border-orange-400 pl-3 p
|
||
-y-1">
|
||
1310 - <div class="font-semibold text-orange-300">Advisory locks (
|
||
-mkdir)</div>
|
||
1311 - <div class="text-gray-400 text-xs">Serializa escrituras en
|
||
-manifest/changelog/backlog. Stale detection por PID.</div>
|
||
914 +<div class="border border-gray-700 rounded p-3 bg-gray-900">
|
||
915 + <div class="text-orange-300 text-sm font-semibold">¿Dónde e
|
||
+stá el mínimo de comprensión necesario?</div>
|
||
916 + <div class="text-gray-500 text-xs mt-1">Saber qué no puede
|
||
+romperse. Sin eso, no tienes control.</div>
|
||
917 </div>
|
||
918
|
||
1314 -<div class="box-highlight border-l-4 border-gray-600 pl-3 py-
|
||
-1">
|
||
1315 - <div class="font-semibold text-gray-300">Actor-agnostic pro
|
||
-tocol</div>
|
||
1316 - <div class="text-gray-400 text-xs">El sistema no distingue
|
||
-humano de agente. El protocolo enforcea igual para ambos.</di
|
||
-v>
|
||
919 +<div class="border border-gray-700 rounded p-3 bg-gray-900">
|
||
920 + <div class="text-orange-300 text-sm font-semibold">¿Las pla
|
||
+taformas internas resuelven esto o lo esconden?</div>
|
||
921 + <div class="text-gray-500 text-xs mt-1">Una plataforma sin
|
||
+ontología solo mueve la ignorancia un nivel arriba.</div>
|
||
922 </div>
|
||
923
|
||
924 </div>
|
||
925
|
||
1321 -</v-click>
|
||
1322 -
|
||
1323 -<v-click>
|
||
1324 -
|
||
1325 -<div class="mt-8 text-sm text-gray-500">
|
||
1326 -Worktrees aíslan el working-tree (branches diferentes).<br>
|
||
1327 -Locking serializa escrituras sobre el mismo árbol.<br>
|
||
1328 -Son complementarios, no alternativos.
|
||
926 </div>
|
||
927
|
||
1331 -</v-click>
|
||
1332 -
|
||
928 </div>
|
||
929
|
||
1335 -</div>
|
||
1336 -
|
||
930 <Footer />
|
||
931
|
||
932 <!--
|
||
1340 -AI agents are first-class actors in this system. The protocol
|
||
- does not distinguish — it enforces.
|
||
1341 -The session hook means Claude starts informed, not blind.
|
||
1342 -Concurrent use without a central coordinator is the scaling p
|
||
-roperty that makes this practical.
|
||
933 +Open space: las mejores respuestas vendrán del público.
|
||
934 +Tu rol aquí es provocar, no resolver. Lanza las preguntas y d
|
||
+eja el silencio.
|
||
935 -->
|
||
936
|
||
937 ---
|
||
...
|
||
942
|
||
943 <div class="standalone-slide text-shadow-lg text-xl">
|
||
944
|
||
1353 -# Ontology & Reflection
|
||
945 +<div class="text-3xl font-semibold text-gray-100 mb-2">
|
||
946 + La IA puede declarar tu infra.
|
||
947 +</div>
|
||
948
|
||
1355 -<div class="meters-final -mt-3 mb-7">
|
||
1356 - <span class="text-green-400">✓ Typed</span>
|
||
1357 - <span class="text-green-400">✓ Verified</span>
|
||
1358 - <span class="text-green-400">✓ Sealed</span>
|
||
1359 - <span class="text-green-400">✓ Decided</span>
|
||
949 +<div class="text-3xl font-semibold text-orange-400 mb-8">
|
||
950 + No puede entenderla por ti.
|
||
951 </div>
|
||
952
|
||
1362 -<div class="text-2xl leading-11 text-gray-200">
|
||
1363 -El código y el entendimiento del código deben converger.<br>
|
||
1364 -Los <em>ADRs</em> y la <em>ontología</em> son el contrato ent
|
||
-re ambos.<br>
|
||
1365 -La <em>reflection</em> es la operación sobre ese contrato.
|
||
953 +<v-click>
|
||
954 +
|
||
955 +<div class="text-xl text-gray-300 leading-10 max-w-2xl mx-aut
|
||
+o">
|
||
956 + La ontología es el modelo que te fuerza a saber qué es verd
|
||
+ad ahora.<br>
|
||
957 + La reflection es la operación sobre ese modelo.<br>
|
||
958 + La IA es el actor que opera <em>sobre lo que ya clarificast
|
||
+e</em>.
|
||
959 </div>
|
||
960
|
||
1368 -<div class="text-4xl leading-12 text-gray-200 my-5">
|
||
1369 -Gracias. ¿Preguntas?
|
||
961 +</v-click>
|
||
962 +
|
||
963 +<v-click>
|
||
964 +
|
||
965 +<div class="mt-10 text-2xl text-gray-200">
|
||
966 + Gracias. ¿Preguntas?
|
||
967 </div>
|
||
968
|
||
1372 -<small>jesusperez.pro · ontoref.dev </small>
|
||
969 +<small class="mt-4 block text-gray-500">jesusperez.pro · onto
|
||
+ref.dev</small>
|
||
970
|
||
971 +</v-click>
|
||
972 +
|
||
973 </div>
|
||
974
|
||
975 <style>
|
||
1377 -.meters-final {
|
||
1378 - display: inline-flex;
|
||
1379 - gap: 2rem;
|
||
1380 - font-size: 1.4rem;
|
||
1381 - font-family: monospace;
|
||
976 +.standalone-slide {
|
||
977 + text-align: center;
|
||
978 }
|
||
979 </style>
|
||
980
|
||
981 <Footer />
|
||
982
|
||
983 <!--
|
||
1388 -Direct eye contact. Slow delivery.
|
||
1389 -The three green checks are the promise: typed, verified, seal
|
||
-ed. If those three hold, the system holds.
|
||
984 +Cierre lento. Las tres líneas son la síntesis completa.
|
||
985 +No terminar con "ontoref es la solución" — terminar con la in
|
||
+versión cognitiva.
|
||
986 +El punto no es adoptar ontoref. El punto es tomar posesión de
|
||
+ tu propio modelo.
|
||
987 -->
|
||
|
||
⏺ ★ Insight ─────────────────────────────────────
|
||
Las slides fusionan las dos propuestas en una narrativa única: propuesta 2
|
||
(infra + IA) establece el problema, propuesta 1 (ontología como
|
||
auto-clarificación) es la respuesta. El slide final invierte la expectativa —
|
||
no "ontoref es la herramienta", sino "la mejora es tuya, no de la IA". El
|
||
slide de debate mantiene ambas líneas separadas para que en el open space el
|
||
facilitador pueda elegir qué hilo tirar.
|
||
─────────────────────────────────────────────────
|
||
|
||
11 slides en total siguiendo el patrón Slidev exacto del archivo original:
|
||
|
||
┌─────┬──────────────────────────┬────────────────────────────────────────┐
|
||
│ # │ Slide │ Función narrativa │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 1 │ Cover │ Pregunta provocadora — combina ambas │
|
||
│ │ │ propuestas │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 2 │ El problema no es la │ IA hace forma correcta, no significado │
|
||
│ │ herramienta │ │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 3 │ Las 2am │ Caso concreto de Terraform sin │
|
||
│ │ │ contexto │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 4 │ Tu proyecto vive en tu │ Transición al argumento de ontología │
|
||
│ │ cabeza │ │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 5 │ La tesis │ Inversión central — ontología es para │
|
||
│ │ │ ti │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 6 │ Ontología ≠ lista de │ Diferencia estructural vs prosa │
|
||
│ │ decisiones │ │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 7 │ Ontoref — tres archivos │ core.ncl, state.ncl, gate.ncl como │
|
||
│ │ │ modelo concreto │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 8 │ Reflection — lo que se │ Dualidad ontología/reflection │
|
||
│ │ CONVIERTE │ │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 9 │ La IA como actor, no │ SessionStart hook — antes/después │
|
||
│ │ oráculo │ │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 10 │ ¿Quién mantiene esto? │ La objeción más honesta + respuesta de │
|
||
│ │ │ diseño │
|
||
├─────┼──────────────────────────┼────────────────────────────────────────┤
|
||
│ 11 │ Debate + Cierre │ Preguntas abiertas organizadas por │
|
||
│ │ │ propuesta │
|
||
└─────┴──────────────────────────┴────────────────────────────────────────┘
|
||
|
||
✻ Baked for 2m 58s
|
||
|
||
※ recap: Created open space slides in slides.md covering ontology and reflection as ontoref base concepts, blending both proposals into one narrative arc. No next action pending — slides are complete and ready to preview. (disable recaps in /config)
|
||
|
||
❯ en la ontología filosófca exiten los universales, ¿ son los invariantes un
|
||
equivalente de los mismos ?
|
||
|
||
⏺ No exactamente — la correspondencia es más fina que eso.
|
||
|
||
Los universales responden a: ¿qué comparten múltiples particulares que los
|
||
hace del mismo tipo? Son propiedades abstractas que se instancian en varios
|
||
individuos: "rojez", "humanidad". El debate clásico (realismo platónico vs
|
||
nominalismo) gira en torno a si existen independientemente de sus instancias.
|
||
|
||
Los invariantes en ontoref son otra cosa: son propiedades esenciales de un
|
||
singular — el proyecto como entidad. No preguntan qué comparten múltiples
|
||
proyectos; preguntan qué no puede cambiar en este proyecto sin que deje de ser
|
||
este proyecto.
|
||
|
||
La analogía filosófica más precisa no es el universal — es la distinción
|
||
aristotélica entre propiedades esenciales y accidentales. Un invariante dice:
|
||
si esto cambia, el proyecto ha cambiado de naturaleza, no solo de estado.
|
||
Kripke lo formalizó mejor: ciertas propiedades son rígidas — no contingentes
|
||
en ningún mundo posible dado un individuo.
|
||
|
||
Donde sí hay resonancia con los universales: ambos capturan lo que no varía a
|
||
través del cambio — el universal a través de la instanciación, el invariante a
|
||
través de la evolución temporal. La familia semántica es la misma aunque el
|
||
eje difiera.
|
||
|
||
Y hay otra diferencia de fondo: los universales platónicos existen
|
||
independientemente de que alguien los declare. Los invariantes de ontoref son
|
||
hechos institucionales en el sentido de Searle — son verdad porque los
|
||
arquitectos del proyecto los declararon como tales y los formalizaron. Son
|
||
constructivistas, no metafísicamente realistas. Eso los hace más frágiles
|
||
(requieren mantenimiento activo) pero también más honestos sobre su
|
||
naturaleza.
|
||
|
||
Las tensiones de ontoref tienen otro pedigree — se acercan más a la dialéctica
|
||
hegeliana: trade-offs que no se resuelven, solo se gestionan.
|
||
|
||
✻ Crunched for 33s
|
||
|
||
❯ relaciona los elementos básicos de la filosófica con respecto a la que usa el
|
||
model operacional en software y compara sus autores y orígenes
|
||
|
||
⏺ Esta es una genealogía real. La tabla primero, luego los matices que no caben
|
||
en ella.
|
||
|
||
---
|
||
Tabla comparativa
|
||
|
||
Concepto filosófico: Universales
|
||
Autor / Origen: Platón (428-348 aC) — República, Parménides
|
||
Equivalente operacional: Tipos / Schemas
|
||
Implementación en ontoref: Contratos Nickel — String, [| 'Accepted, 'Proposed
|
||
|]
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Esencia / Accidente
|
||
Autor / Origen: Aristóteles (384-322 aC) — Metafísica
|
||
Equivalente operacional: Invariante / Estado mutable
|
||
Implementación en ontoref: invariante = true en core.ncl vs dimensiones en
|
||
state.ncl
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Potencia / Acto
|
||
Autor / Origen: Aristóteles — Metafísica IX
|
||
Equivalente operacional: Estado actual → deseado + Gates
|
||
Implementación en ontoref: current_state / desired_state / gate.ncl
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Categorías
|
||
Autor / Origen: Aristóteles — Categorías
|
||
Equivalente operacional: Tipos de nodo ontológico
|
||
Implementación en ontoref: invariants, tensions, practices, dimensions, gates
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Sustancia primera / segunda
|
||
Autor / Origen: Aristóteles — Categorías
|
||
Equivalente operacional: Instancia / Tipo
|
||
Implementación en ontoref: Proyecto concreto vs schema de proyecto
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Identidad a través del tiempo
|
||
Autor / Origen: Locke (Ensayo, 1689), Parfit (Reasons, 1984)
|
||
Equivalente operacional: Versioning + ADR lifecycle
|
||
Implementación en ontoref: status = Superseded, superseded_by — identidad que
|
||
evoluciona formalmente
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Dialéctica
|
||
Autor / Origen: Hegel (1770-1831) — Fenomenología del Espíritu
|
||
Equivalente operacional: Tensiones activas
|
||
Implementación en ontoref: tensions en core.ncl — sin síntesis, gestionadas
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Logos como tensión de opuestos
|
||
Autor / Origen: Heráclito (535-475 aC)
|
||
Equivalente operacional: Tensión irreducible
|
||
Implementación en ontoref: La dualidad ontología/reflection como tensión
|
||
constitutiva
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Mundos posibles
|
||
Autor / Origen: Leibniz (1646-1716) + Kripke (Naming, 1980)
|
||
Equivalente operacional: FSM — transiciones permitidas
|
||
Implementación en ontoref: ADRs como restricciones de accesibilidad entre
|
||
estados
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Propiedades esenciales rígidas
|
||
Autor / Origen: Kripke — Naming and Necessity (1980)
|
||
Equivalente operacional: Invariantes como necesidad, no contingencia
|
||
Implementación en ontoref: Un invariante es verdad en todos los estados
|
||
posibles del proyecto
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Límites del lenguaje = límites del mundo
|
||
Autor / Origen: Wittgenstein — Tractatus (1921)
|
||
Equivalente operacional: Schema como frontera de lo expresable
|
||
Implementación en ontoref: Lo que no tipea en Nickel no puede existir en el
|
||
sistema
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Juegos de lenguaje
|
||
Autor / Origen: Wittgenstein — Investigaciones (1953)
|
||
Equivalente operacional: Modos operacionales
|
||
Implementación en ontoref: Un modo define las reglas del juego para un
|
||
contexto
|
||
operacional
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Verdad como correspondencia
|
||
Autor / Origen: Tarski (1933) — El concepto de verdad
|
||
Equivalente operacional: Typecheck / validación
|
||
Implementación en ontoref: nickel export como verificación de correspondencia
|
||
con el schema
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Hechos institucionales
|
||
Autor / Origen: Searle — La construcción de la realidad social (1995)
|
||
Equivalente operacional: ADRs como decisiones declaradas
|
||
Implementación en ontoref: Un ADR es verdad porque el equipo lo declaró y
|
||
formalizó — no metafísicamente
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Ontología formal vs regional
|
||
Autor / Origen: Husserl — Ideas I (1913)
|
||
Equivalente operacional: Schema (formal) vs ontología del proyecto (regional)
|
||
Implementación en ontoref: adrs/schema.ncl vs .ontology/core.ncl
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Proceso vs sustancia
|
||
Autor / Origen: Whitehead — Process and Reality (1929)
|
||
Equivalente operacional: Ontología (ser) vs Reflection (devenir)
|
||
Implementación en ontoref: La dualidad estructural del protocolo
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Realismo estructural
|
||
Autor / Origen: Ladyman & Ross — Every Thing Must Go (2007)
|
||
Equivalente operacional: Grafo como lo real, no las entidades
|
||
Implementación en ontoref: El DAG captura relaciones; los nodos son
|
||
secundarios
|
||
────────────────────────────────────────
|
||
Concepto filosófico: Lógica de predicados
|
||
Autor / Origen: Frege (1879) — Begriffsschrift
|
||
Equivalente operacional: Queries sobre el grafo
|
||
Implementación en ontoref: where severity == "Hard" | select id claim
|
||
|
||
---
|
||
Los mapeos no triviales
|
||
|
||
Aristóteles es el arquitecto base. La esencia/accidente es exactamente
|
||
invariante/estado-mutable. La potencia/acto es exactamente
|
||
current_state/desired_state con la gate como umbral de actualización. Que esto
|
||
haya tardado 2.300 años en aparecer en software de forma explícita es
|
||
indicativo de cuánto tiempo estuvo implícito.
|
||
|
||
Whitehead vs Aristóteles es la tensión interna del protocolo. Aristóteles ve
|
||
la realidad como sustancias con propiedades. Whitehead la ve como procesos: no
|
||
hay cosas, hay eventos. Ontoref vive en esa grieta — la ontología es
|
||
aristotélica (qué ES el proyecto), la reflection es whiteheadiana (cómo
|
||
DEVIENE). La decisión de mantenerlos como capas separadas es un reconocimiento
|
||
implícito de que ninguno basta solo.
|
||
|
||
Kripke resuelve algo que Aristóteles dejó ambiguo. Aristóteles distingue
|
||
esencial de accidental pero no formaliza la modalidad. Kripke dice: una
|
||
propiedad esencial es rígida — verdad en todos los mundos posibles accesibles
|
||
desde el individuo. Los invariantes de ontoref son exactamente esto: no pueden
|
||
ser falsos en ningún estado posible del proyecto sin que el proyecto deje de
|
||
ser ese proyecto. Los ADRs que los cambian no violan los invariantes — crean
|
||
un nuevo individuo.
|
||
|
||
Searle es el que más se ignora y más aplica. Un ADR no captura una verdad
|
||
metafísica sobre el proyecto — es un hecho institucional. Es verdad porque el
|
||
equipo colectivamente lo declaró y comprometió. Exactamente como "este papel
|
||
es dinero" o "este jugador está fuera de juego". Sin el acto declarativo, la
|
||
constraint no existe. Esto tiene una implicación práctica: si el equipo no
|
||
cree en el ADR, no hay constraint real — hay teatro.
|
||
|
||
Wittgenstein en dos fases distintas. El Tractatus da el fundamento del schema:
|
||
los límites de lo tipable son los límites de lo que el sistema puede
|
||
representar. Las Investigaciones dan el fundamento de los modos: el
|
||
significado de una operación es su uso dentro de un juego de lenguaje — el
|
||
modo new_service no describe, prescribe una forma de vida operacional dentro
|
||
del proyecto.
|
||
|
||
La ausencia notable: Heidegger. El ser-en-el-mundo como condición de
|
||
posibilidad de cualquier ontología explícita no aparece en ningún modelo de
|
||
software operacional. Lo que Heidegger llamaría el trasfondo pre-temático — el
|
||
contexto que no se puede formalizar porque es la condición de posibilidad de
|
||
la formalización — es exactamente lo que los READMEs intentan capturar y
|
||
fracasan. Ontoref no lo resuelve tampoco. Lo que sí hace es reducir la
|
||
superficie de ese trasfondo haciendo explícito lo que puede serlo.
|
||
|
||
✻ Cooked for 1m 2s
|
||
|
||
❯ genera un pdf con estas dos últimas preguntas en un PDF y añade info sobre
|
||
quíen creo la ontología operacional, por qué y dónde se usa actualmente
|
||
|
||
⏺ Primero verifico qué herramientas de conversión tengo disponibles.
|
||
|
||
⏺ Bash(which pandoc && pandoc --version | head -1; which wkhtmltopdf; which
|
||
weasyprint; which typst)
|
||
⎿ /usr/local/bin/pandoc
|
||
pandoc 3.7.0.2
|
||
/opt/homebrew/bin/weasyprint
|
||
/opt/homebrew/bin/typst
|
||
|
||
⏺ Tengo pandoc y typst. Usaré typst — produce mejor output para contenido
|
||
académico/filosófico. Escribo el documento y compilo.
|
||
|
||
⏺ Write(ontologia-filosofia-software.typ)
|
||
⎿ Wrote 360 lines to ontologia-filosofia-software.typ
|
||
2 title: "Ontología filosófica y modelo operacional en software"
|
||
,
|
||
3 author: "Jesús Pérez Lorenzo",
|
||
4 )
|
||
5
|
||
7 paper: "a4",
|
||
8 margin: (top: 2.5cm, bottom: 2.5cm, left: 2.8cm, right: 2.8cm)
|
||
,
|
||
9 numbering: "1",
|
||
10 number-align: right,
|
||
… +536 lines (ctrl+o to expand)
|
||
|
||
❯ escribe el pdf tambien !!!
|
||
|
||
⏺ Bash(cd /Users/Akasha/Development/ontoref/assets/presentation && typst compile
|
||
ontologia-filosofia-software.typ ontologia-filosofia-software.pdf 2>&1)
|
||
⎿ (No output)
|
||
|
||
Listed 1 directory (ctrl+o to expand)
|
||
|
||
⏺ PDF generado en assets/presentation/ontologia-filosofia-software.pdf (179K).
|
||
|
||
Contiene tres secciones:
|
||
|
||
1. Universales e invariantes — la correspondencia no es directa: los
|
||
invariantes son propiedades esenciales de un singular (Aristóteles → Kripke)
|
||
con estatus de hechos institucionales (Searle), no universales en sentido
|
||
platónico ni aristotélico.
|
||
|
||
2. Tabla comparativa completa — 17 filas con concepto, autor/obra/fecha,
|
||
equivalente operacional e implementación concreta en ontoref.
|
||
|
||
3. Genealogía de la ontología operacional en software:
|
||
|
||
┌────────────────┬────────────────────────────────────────────┬───────────┐
|
||
│ Figura │ Contribución │ Año │
|
||
├────────────────┼────────────────────────────────────────────┼───────────┤
|
||
│ McCarthy │ Representación explícita del conocimiento, │ 1958–1969 │
|
||
│ │ situational calculus │ │
|
||
├────────────────┼────────────────────────────────────────────┼───────────┤
|
||
│ Minsky │ Frames — primera estructura análoga a la │ 1974 │
|
||
│ │ sustancia aristotélica │ │
|
||
├────────────────┼────────────────────────────────────────────┼───────────┤
|
||
│ Lenat │ Cyc — 600K conceptos, el proyecto más │ 1984 │
|
||
│ │ ambicioso │ │
|
||
├────────────────┼────────────────────────────────────────────┼───────────┤
|
||
│ Gruber │ Definición canónica: "especificación de │ 1993 │
|
||
│ (Stanford) │ una conceptualización" │ │
|
||
├────────────────┼────────────────────────────────────────────┼───────────┤
|
||
│ Guarino │ Ontología formal en sistemas de │ 1990s │
|
||
│ (ISTC-CNR) │ información, FOIS │ │
|
||
├────────────────┼────────────────────────────────────────────┼───────────┤
|
||
│ Berners-Lee et │ Web Semántica, RDF, OWL, SPARQL │ 2001 │
|
||
│ al. │ │ │
|
||
├────────────────┼────────────────────────────────────────────┼───────────┤
|
||
│ Google │ Knowledge Graph — ontología operacional a │ 2012 │
|
||
│ │ escala de producción │ │
|
||
└────────────────┴────────────────────────────────────────────┴───────────┘
|
||
|
||
Uso actual: biomedicina (Gene Ontology, SNOMED CT, ICD-11), grafos
|
||
empresariales (Wikidata, schema.org), manufactura (ISO 15926, BIM/IFC),
|
||
agentes IA — y la frontera actual: ontologías del propio proyecto de software
|
||
como modelo auto-descriptivo consultable.
|
||
|
||
El .typ fuente queda en el mismo directorio para ediciones futuras.
|
||
|
||
✻ Brewed for 3m 16s
|
||
|
||
※ recap: Generated slides for the open space talk (slides.md) and a philosophical PDF comparing ontology concepts to ontoref's operational model. No pending actions unless you want to review or present either file. (disable recaps in /config)
|
||
|
||
❯ Qué relación tiene la ontología la filosófica y la operacional con el
|
||
taoismo, yin/yang ?
|
||
|
||
⏺ La relación es más profunda que una metáfora. Hay correspondencias
|
||
estructurales genuinas, pero también diferencias que el Taoísmo ilumina mejor
|
||
que la tradición occidental.
|
||
|
||
---
|
||
Lo que el Taoísmo ve que la ontología occidental no ve
|
||
|
||
La ontología occidental desde Parménides privilegia el ser sobre el no-ser, la
|
||
presencia sobre la ausencia, la identidad sobre la diferencia. Toda la
|
||
tradición aristotélica-escolástica-analítica trabaja desde ahí.
|
||
|
||
El Taoísmo invierte la pregunta. El Tao (道) es previo a la distinción
|
||
ser/no-ser. El primer capítulo del Tao Te Ching:
|
||
|
||
▎ 道可道,非常道。名可名,非常名。
|
||
▎ El Tao que puede nombrarse no es el Tao eterno. El nombre que puede
|
||
▎ pronunciarse no es el nombre eterno.
|
||
|
||
Lo que no puede formalizarse no es una limitación — es la condición de
|
||
posibilidad de todo lo que sí puede formalizarse. La ontología operacional que
|
||
puede expresarse completamente en un schema no captura la realidad
|
||
operacional completa. Heidegger llegó al mismo lugar por otro camino — el
|
||
trasfondo pre-temático que hace posible cualquier acto de comprensión
|
||
explícita.
|
||
|
||
---
|
||
Yin-Yang — no oposición sino polaridad constitutiva
|
||
|
||
La confusión más común: yin y yang no son contrarios sino complementarios que
|
||
se definen mutuamente. Propiedades clave:
|
||
|
||
- Cada polo contiene una semilla del opuesto — el punto pequeño dentro de cada
|
||
mitad del símbolo
|
||
- El exceso de un polo genera su contrario (極則反 — la extremidad se
|
||
invierte)
|
||
- La tensión entre ellos nunca se resuelve — solo se gestiona dinámicamente
|
||
- Uno no existe sin el otro — yin sin yang es vacío inerte, yang sin yin es
|
||
movimiento sin forma
|
||
|
||
Esto es estructuralmente distinto de la dialéctica hegeliana, que busca
|
||
síntesis — resolver la contradicción en una unidad superior. El yin-yang no
|
||
resuelve. La tensión es constitutiva, permanente.
|
||
|
||
---
|
||
Correspondencias con la ontología filosófica
|
||
|
||
Concepto taoísta: Tao (道) — el principio previo a toda distinción
|
||
Autor / Texto: Laozi, Tao Te Ching (~6-4 aC)
|
||
Equivalente occidental más cercano: Ser de Heidegger — previo a los entes
|
||
Diferencia clave: El Tao es innombrable; el Ser heideggeriano puede pensarse
|
||
aunque no definirse
|
||
────────────────────────────────────────
|
||
Concepto taoísta: Yin/Yang — dualidad que no se resuelve
|
||
Autor / Texto: Tradición Zhou (~1100 aC), sistematizada en I Ching
|
||
Equivalente occidental más cercano: Heráclito — logos como tensión de opuestos
|
||
Diferencia clave: Heráclito es el único occidental pre-moderno equivalente
|
||
────────────────────────────────────────
|
||
Concepto taoísta: Wu wei (無為) — acción sin forzar
|
||
Autor / Texto: Laozi, Tao Te Ching
|
||
Equivalente occidental más cercano: Aristóteles — acto que fluye de la esencia
|
||
Diferencia clave: Wu wei no tiene equivalente exacto en Occidente
|
||
────────────────────────────────────────
|
||
Concepto taoísta: Ji (機) — el momento exacto de transformación
|
||
Autor / Texto: Zhuangzi, Zhuangzi (~4 aC)
|
||
Equivalente occidental más cercano: Kripke — accesibilidad entre mundos
|
||
posibles
|
||
Diferencia clave: Ji es cualitativo y contextual; Kripke es lógico-formal
|
||
────────────────────────────────────────
|
||
Concepto taoísta: Wu ji → Tai ji — de lo indiferenciado a la polaridad
|
||
Autor / Texto: Cosmología taoísta, Zhou Dunyi (1017-1073)
|
||
Equivalente occidental más cercano: Hegel — de lo abstracto a lo concreto
|
||
Diferencia clave: Hegel sintetiza; el taoísmo mantiene la polaridad
|
||
────────────────────────────────────────
|
||
Concepto taoísta: Relatividad perspectival
|
||
Autor / Texto: Zhuangzi — la perspectiva de la rana del pozo
|
||
Equivalente occidental más cercano: Wittgenstein tardío — juegos de lenguaje
|
||
Diferencia clave: Zhuangzi va más lejos: toda ontología es perspectival
|
||
|
||
Heráclito es el occidental más cercano. Su logos como tensión dinámica de
|
||
opuestos — "el camino hacia arriba y hacia abajo son el mismo" — es
|
||
estructuralmente idéntico al yin-yang. Hegel lo notó. La diferencia: Heráclito
|
||
vive en la tensión; Hegel la usa como palanca hacia la síntesis.
|
||
|
||
---
|
||
Correspondencias con la ontología operacional en software
|
||
|
||
Aquí es donde se pone interesante. La ontología OWL-estilo (Gruber, Web
|
||
Semántica) es fundamentalmente clasificatoria — jerarquías de tipos, herencia,
|
||
subsunción. Aristotélica en su hueso.
|
||
|
||
El modelo operacional de ontoref es estructuralmente más cercano al Taoísmo:
|
||
|
||
1. Yin/Yang ↔ Ontología / Reflection
|
||
|
||
La dualidad ya está en el diseño del protocolo:
|
||
|
||
- Ontología (core.ncl): lo que ES — invariantes, estructura, ser. Yang — la
|
||
capa formal, dura, definida.
|
||
- Reflection: lo que DEVIENE — operaciones, modos, movimiento. Yin — la capa
|
||
fluida, procesual.
|
||
|
||
Y como en el símbolo: cada una contiene una semilla de la otra. La ontología
|
||
describe estados futuros (desired_state) — contiene movimiento. La reflection
|
||
puede actualizar la ontología vía ADRs — contiene forma. Separarlas es
|
||
necesario porque tienen ritmos distintos; fundirlas sería colapsar el yin en
|
||
el yang.
|
||
|
||
2. Wu wei ↔ "No enforcement"
|
||
|
||
Uno de los invariantes del protocolo: coherencia voluntaria que emerge de la
|
||
adopción justificada, sin mecanismo de enforcement.
|
||
|
||
Esto es wu wei aplicado a diseño de sistemas. No impones — creas las
|
||
condiciones para que el alineamiento emerja naturalmente. Un sistema de tipos
|
||
fuertes fuerza. Una ontología operacional orienta. La diferencia es
|
||
exactamente la diferencia entre imponer el Tao y fluir con él.
|
||
|
||
3. Tensiones ↔ Yin-Yang permanente
|
||
|
||
Las tensiones en un modelo operacional ("formalización vs. fricción de
|
||
adopción", "ontología vs. reflection") son explícitamente irresolubles. No se
|
||
busca síntesis — se gestionan.
|
||
|
||
Esto es taoísta, no hegeliano. Si eliminas la tensión entre formalización y
|
||
adopción — maximizando uno — el sistema muere. O es un schema perfecto que
|
||
nadie adopta, o es caos que todos adoptan pero nadie puede razonar sobre. La
|
||
tensión viva entre los polos es la que sostiene el sistema.
|
||
|
||
4. Gates ↔ Ji (機) — el momento de transformación
|
||
|
||
El concepto taoísta de ji es el punto de inflexión donde el potencial se
|
||
actualiza — no un estado sino el umbral entre estados. Dinámico, cualitativo,
|
||
contextual.
|
||
|
||
Las gates en ontoref son exactamente esto. No son checkboxes — son condiciones
|
||
que marcan el momento en que un estado puede transformarse en otro. La gate
|
||
activa no dice "puedes cruzar cuando X sea verdad" sino "este es el umbral que
|
||
separa lo que eres de lo que puedes devenir".
|
||
|
||
5. Wu ji → Tai ji ↔ Schema formal → Ontología regional
|
||
|
||
La cosmología taoísta describe el origen como Wu ji (無極) — el vacío
|
||
indiferenciado previo a cualquier distinción — que da lugar a Tai ji (太極) —
|
||
la polaridad primordial yin/yang.
|
||
|
||
Husserl hizo la misma distinción: ontología formal (estructuras lógicas puras,
|
||
previas a cualquier dominio) vs. ontología regional (conceptos de un dominio
|
||
específico). El schema.ncl es el Wu ji — la estructura vacía que puede
|
||
instanciarse en cualquier proyecto. El .ontology/core.ncl de un proyecto
|
||
concreto es el Tai ji — la polaridad específica de ese mundo.
|
||
|
||
---
|
||
Lo que el Taoísmo revela que la tradición occidental pierde
|
||
|
||
La crítica taoísta a OWL y las ontologías clasificatorias:
|
||
|
||
Los sistemas como OWL intentan eliminar la ambigüedad mediante clasificación
|
||
precisa. El Tao Te Ching advierte: cuanto más preciso el nombre, más excluyes.
|
||
La realidad vive en el espacio entre las categorías, no en las categorías
|
||
mismas.
|
||
|
||
Esto explica por qué las ontologías biomédicas — las más maduras del campo —
|
||
sufren continuamente con casos límite, dependencia del contexto y la necesidad
|
||
de múltiples ejes de clasificación simultáneos. La vista taoísta diría:
|
||
estáis intentando resolver una tensión irresolvable. La precisión y la
|
||
cobertura son yin y yang — solo se gestionan.
|
||
|
||
Zhuangzi y el límite de toda ontología:
|
||
|
||
Zhuangzi va más lejos que Laozi. Toda distinción ontológica es perspectival —
|
||
la perspectiva de la rana en el pozo que no puede imaginar el mar. Esto no
|
||
lleva al nihilismo sino a la apropiada contextualidad: la ontología correcta
|
||
para un proyecto no es la más formalmente precisa sino la que el equipo puede
|
||
sostener y evolucionar.
|
||
|
||
Gruber llegó intuitivamente a lo mismo en su definición de 1993: una ontología
|
||
no es una captura de la realidad — es "una especificación de una
|
||
conceptualización". Un punto de vista compartido, no una verdad metafísica.
|
||
Eso es profundamente zhuangziano sin saberlo.
|
||
|
||
---
|
||
La síntesis imposible — y por qué eso es correcto
|
||
|
||
No hay síntesis entre el modelo ontológico occidental (jerarquías de tipos,
|
||
ser definido, identidad estable) y el Taoísmo (proceso, polaridad
|
||
irresolvable, Tao innombrable). Y no debería haberla.
|
||
|
||
Lo que el Taoísmo aporta a la ontología operacional en software no es una
|
||
alternativa — es una corrección de actitud. La tentación del ingeniero es
|
||
resolver las tensiones, eliminar la ambigüedad, llevar el sistema a un estado
|
||
estable final. El Taoísmo dice: ese estado final no existe. El yin-yang vivo —
|
||
la tensión gestionada — es el sistema funcionando correctamente, no el
|
||
sistema esperando ser completado.
|
||
|
||
Un modelo operacional que no tiene tensiones activas no es un modelo maduro.
|
||
Es un modelo muerto.
|
||
|
||
✻ Sautéed for 1m 42s
|
||
❯ Y cómo se llega a los DAG y su función en la ontología operacional
|
||
|
||
⏺ La genealogía es larga y viene de tres tradiciones que convergen. Vale la pena
|
||
recorrerla completa porque cada una aporta algo distinto.
|
||
|
||
---
|
||
1. El problema que fuerza el grafo
|
||
|
||
Antes del grafo hay un problema: ¿cómo representar conocimiento estructurado
|
||
de forma que se pueda razonar sobre él?
|
||
|
||
La prosa no sirve — no es consultable ni verificable. Las listas planas
|
||
pierden las relaciones. Las jerarquías de árbol pierden los nodos con
|
||
múltiples padres. El grafo emerge como la estructura mínima que captura
|
||
relaciones arbitrarias entre conceptos.
|
||
|
||
Pero el grafo general tiene un problema: puede tener ciclos. Y los ciclos en
|
||
ontología son epistemológicamente problemáticos.
|
||
|
||
---
|
||
2. Por qué la aciclicidad — el problema de la justificación circular
|
||
|
||
Esto viene de dos tradiciones independientes que llegan al mismo resultado:
|
||
|
||
Aristóteles (384-322 aC) — Analíticos Posteriores: una definición válida
|
||
procede de género más diferencia específica. El género es más general que lo
|
||
definido — la jerarquía es estrictamente descendente. Si A se define en
|
||
términos de B y B en términos de A, ninguno está definido. La justificación
|
||
circular es un defecto lógico, no una propiedad tolerable.
|
||
|
||
Russell (1901) — la paradoja del conjunto de todos los conjuntos que no se
|
||
contienen a sí mismos. La solución que Russell y Whitehead desarrollan en
|
||
Principia Mathematica (1910) es la teoría de tipos: los tipos forman una
|
||
jerarquía estricta — un tipo de nivel N solo puede contener o referirse a
|
||
tipos de nivel N-1 o inferior. Esto es estructuralmente un DAG. La aciclicidad
|
||
no es una restricción arbitraria — es la solución formal al colapso por
|
||
autorreferencia.
|
||
|
||
Tarski (1933) — verdad como correspondencia entre proposiciones y estructuras.
|
||
Las estructuras que usa son relaciones sobre dominios — grafos. La teoría de
|
||
modelos formaliza esto.
|
||
|
||
La convergencia: en lógica, ontología formal y teoría de tipos, la aciclicidad
|
||
es el requisito de que las definiciones sean bien fundadas. No puede haber
|
||
descenso infinito ni circularidad.
|
||
|
||
---
|
||
3. La entrada en inteligencia artificial — redes semánticas
|
||
|
||
Collins & Quillian (1969) — "Retrieval time from semantic memory", Cognitive
|
||
Psychology.
|
||
|
||
Primera implementación computacional de un grafo de conocimiento. Nodos =
|
||
conceptos, aristas = relaciones (is-a, has-property). La jerarquía is-a es
|
||
inherentemente un DAG — si "perro es-un animal" y "animal es-un ser-vivo", la
|
||
subsunción es transitiva y acíclica.
|
||
|
||
Collins y Quillian usaron esto para modelar cómo los humanos recuperamos
|
||
información semántica. El experimento: verificar "¿un canario puede respirar?"
|
||
tarda más que "¿un canario puede cantar?" porque hay que recorrer más niveles
|
||
del DAG. La estructura del grafo predice tiempos de reacción — el
|
||
conocimiento humano tiene topología.
|
||
|
||
Minsky (1974) — frames. Ya discutido, pero la herencia entre frames crea un
|
||
DAG. Un frame puede tener múltiples padres (herencia múltiple) — eso descarta
|
||
el árbol y exige el grafo. Pero los ciclos de herencia son patológicos — un
|
||
frame no puede ser su propio ancestro.
|
||
|
||
KL-ONE (Brachman & Schmolze, 1985) — el primer sistema formal de Description
|
||
Logic. La relación de subsunción entre conceptos forma un DAG. Este trabajo es
|
||
el antecedente directo de OWL. La contribución clave: separar la taxonomía
|
||
(qué es-un qué) del esquema (qué propiedades tiene qué). Dos DAGs superpuestos
|
||
sobre el mismo dominio.
|
||
|
||
---
|
||
4. La formalización de la causalidad como DAG — Pearl
|
||
|
||
Judea Pearl (1988, 2000) — Causality: Models, Reasoning, and Inference.
|
||
|
||
Pearl formalizó algo que hasta entonces era intuitivo: la causalidad es
|
||
acíclica porque la causalidad es temporal. Si A causa B, B ocurre después de
|
||
A. Si B también causara A, tendríamos una contradicción temporal — B ocurre
|
||
antes de A y después de A simultáneamente.
|
||
|
||
Los Bayesian Networks de Pearl son DAGs donde las aristas representan
|
||
relaciones causales y los nodos son variables aleatorias. La estructura del
|
||
DAG codifica las independencias condicionales del sistema — qué variables son
|
||
relevantes para predecir qué otras.
|
||
|
||
Esto añade algo que las redes semánticas no tenían: dirección con significado
|
||
causal, no solo jerárquico. La arista no solo dice "A depende de B" — dice "B
|
||
influye sobre A en esta dirección y no al revés".
|
||
|
||
Para la ontología operacional esto es crucial. Las dependencias entre
|
||
invariantes, tensiones, prácticas y gates no son solo jerárquicas — son
|
||
cuasi-causales. Un invariante justifica una tensión; una tensión motiva una
|
||
práctica; una práctica activa una gate. La dirección importa y no puede
|
||
invertirse.
|
||
|
||
---
|
||
5. El DAG en ingeniería — Make, Git, build systems
|
||
|
||
Paralelo al trabajo académico, los DAGs aparecen en ingeniería por necesidad
|
||
práctica:
|
||
|
||
Make (Feldman, 1976) — el primer build system formal. Las reglas de
|
||
compilación forman un DAG: el ejecutable depende de los objetos, los objetos
|
||
dependen de los fuentes. Make recorre el DAG en orden topológico — compilar
|
||
solo lo que cambió, en el orden correcto. Un ciclo en las dependencias es un
|
||
error explícito.
|
||
|
||
PERT charts (1958, US Navy — programa Polaris) — planificación de proyectos
|
||
como DAG de tareas. Las aristas son dependencias temporales. El camino crítico
|
||
es el camino más largo en el DAG — determina la duración mínima del proyecto.
|
||
Primer uso masivo de DAGs en gestión.
|
||
|
||
Git (Torvalds, 2005) — el historial de commits es un DAG. Cada commit apunta a
|
||
sus padres; los merges crean nodos con múltiples padres; las branches
|
||
divergen. La propiedad clave: no puede existir un commit que sea su propio
|
||
ancestro. La historia es irreversible — el tiempo es un DAG.
|
||
|
||
---
|
||
6. La función del DAG en ontología operacional
|
||
|
||
Cuando llega a la ontología operacional, el DAG hace cuatro cosas que ninguna
|
||
otra estructura hace juntas:
|
||
|
||
① Traversal determinista para consultas de impacto
|
||
|
||
Si cambias un nodo, el DAG define exactamente qué nodos son alcanzables desde
|
||
él (descendientes) y qué nodos lo alcanzan (ancestros). Esto es análisis de
|
||
impacto: "si modifico este invariante, ¿qué tensiones, prácticas y gates se
|
||
ven afectadas?"
|
||
|
||
En un grafo cíclico esto es indecidible — el cierre transitivo de un nodo en
|
||
un grafo cíclico puede ser todo el grafo.
|
||
|
||
② Orden topológico para ejecución
|
||
|
||
Los modos operacionales en ontoref son DAGs de pasos con depends_on. El
|
||
ordenamiento topológico del DAG da el orden de ejecución válido — sin
|
||
necesidad de un scheduler externo. Si el paso B depende del paso A, A siempre
|
||
precede a B en cualquier topological sort.
|
||
|
||
③ Justificación bien fundada — sin circularidad epistémica
|
||
|
||
En el debate epistemológico clásico, el fundacionalismo dice que el
|
||
conocimiento descansa en fundamentos no circulares — como un árbol o DAG con
|
||
nodos raíz. El coherentismo dice que el conocimiento es una red de creencias
|
||
mutuamente sustentadas — puede ser cíclico.
|
||
|
||
La ontología operacional es fundacionalista por diseño. Los invariantes son
|
||
los nodos raíz — se justifican por decisión arquitectural explícita (ADR), no
|
||
por otros nodos del grafo. Las tensiones dependen de los invariantes; las
|
||
prácticas dependen de las tensiones; las gates dependen de las prácticas. La
|
||
justificación fluye en una dirección.
|
||
|
||
Un ciclo en ese grafo significaría: "este invariante existe porque esta
|
||
práctica existe, y esta práctica existe porque este invariante existe". Eso no
|
||
es arquitectura — es dogma circular.
|
||
|
||
④ Rollback con orden definido
|
||
|
||
Si necesitas deshacer cambios, el DAG da el orden inverso. En un grafo
|
||
cíclico, no hay orden inverso bien definido.
|
||
|
||
---
|
||
7. La tensión con el Taoísmo — DAG vs. ciclo
|
||
|
||
Aquí está el punto más interesante, conectando con la conversación anterior.
|
||
|
||
El DAG es yang en su estructura: direccional, jerárquico, asimétrico,
|
||
irreversible. Codifica la flecha del tiempo — las causas preceden a los
|
||
efectos, las definiciones preceden a lo definido.
|
||
|
||
El yin-yang taoísta es cíclico: yin genera yang, yang genera yin. Las
|
||
estaciones, el día y la noche, vida y muerte — todo retorna. El Tao es el
|
||
ciclo eterno.
|
||
|
||
Esto genera una tensión real en la ontología operacional:
|
||
|
||
DAG Yin-Yang
|
||
───────────────────────── ──────────────────────────
|
||
Irreversible Cíclico
|
||
Asimétrico Simétrico en transformación
|
||
El pasado no depende El pasado se convierte
|
||
del futuro en futuro
|
||
Fundacionalista Coherentista
|
||
|
||
La resolución que ontoref hace implícitamente — sin nombrarlo — es separar dos
|
||
temporalidades:
|
||
|
||
- Sincrónica (snapshot): el DAG es válido dentro de un momento dado. La
|
||
ontología en t₀ es un DAG acíclico.
|
||
- Diacrónica (evolución): la secuencia de snapshots puede tener patrones
|
||
cíclicos. Lo que era tensión puede convertirse en invariante; lo que era
|
||
práctica puede ser abandonado y redescubierto.
|
||
|
||
El DAG captura la estructura del ser en un momento. El yin-yang captura el
|
||
proceso de transformación a través del tiempo. Son complementarios, no
|
||
contradictorios — exactamente como ontología y reflection son complementarios.
|
||
|
||
Dicho de otra manera: el contenido es un DAG; la evolución es un ciclo. El I
|
||
Ching — el libro de los cambios — es un sistema para razonar sobre las
|
||
transformaciones de un estado a otro. Los 64 hexagramas son estados (nodos);
|
||
las transformaciones entre ellos son las aristas. El sistema completo es... un
|
||
grafo. No un DAG — un grafo con ciclos, porque la realidad vuelve.
|
||
|
||
---
|
||
Síntesis
|
||
|
||
┌───────────────────────┬─────────────────────────────────────────────────┐
|
||
│ Origen │ Contribución al DAG en ontología operacional │
|
||
├───────────────────────┼─────────────────────────────────────────────────┤
|
||
│ Aristóteles (384 aC) │ Definición bien fundada — jerarquía sin │
|
||
│ │ circularidad │
|
||
├───────────────────────┼─────────────────────────────────────────────────┤
|
||
│ Russell/Whitehead │ Teoría de tipos — aciclicidad como solución al │
|
||
│ (1910) │ colapso por autorreferencia │
|
||
├───────────────────────┼─────────────────────────────────────────────────┤
|
||
│ Collins & Quillian │ Primera red semántica computacional — is-a como │
|
||
│ (1969) │ DAG │
|
||
├───────────────────────┼─────────────────────────────────────────────────┤
|
||
│ Minsky (1974) │ Frames con herencia múltiple — DAG sobre árbol │
|
||
├───────────────────────┼─────────────────────────────────────────────────┤
|
||
│ Brachman/Schmolze │ Description Logic — subsunción formal como DAG │
|
||
│ (1985) │ │
|
||
├───────────────────────┼─────────────────────────────────────────────────┤
|
||
│ Pearl (1988) │ Causalidad como DAG — dirección con significado │
|
||
│ │ temporal │
|
||
├───────────────────────┼─────────────────────────────────────────────────┤
|
||
│ Feldman/Make (1976) │ Dependencias de build como DAG — orden │
|
||
│ │ topológico práctico │
|
||
├───────────────────────┼─────────────────────────────────────────────────┤
|
||
│ Torvalds/Git (2005) │ Historia como DAG — irreversibilidad del tiempo │
|
||
│ │ en VCS │
|
||
└───────────────────────┴─────────────────────────────────────────────────┘
|
||
|
||
Lo que el DAG aporta que ninguna otra estructura da: razonamiento sobre
|
||
dependencias con garantía de terminación y justificación no circular. Es el
|
||
mínimo estructural para que una ontología pueda responder "¿qué afecta a qué?"
|
||
sin entrar en bucle infinito.
|
||
|
||
Y la tensión con el Taoísmo no es un defecto — es la tensión constitutiva
|
||
entre estructura y proceso, entre el instante formalizados y el tiempo que
|
||
fluye. El DAG captura el yang del sistema. El ciclo de ADRs, versiones y
|
||
transformaciones captura el yin.
|
||
|
||
✻ Brewed for 1m 56s
|
||
|
||
❯ ¿ tal vez quieras incluir algo como material relevante y añadir alguna
|
||
refencia y perpectiva ?
|
||
|
||
⏺ Voy a leer el archivo typst actual y añadir las dos nuevas secciones más la
|
||
bibliografía.
|
||
|
||
Read 1 file (ctrl+o to expand)
|
||
⎿ Interrupted · What should Claude do instead?
|
||
|
||
❯ continua
|
||
|
||
⏺ Update(ontologia-filosofia-software.typ)
|
||
⎿ Added 323 lines
|
||
358 La ontología operacional en software no es una importación rec
|
||
iente de la filosofía — es una convergencia que lleva setenta
|
||
años ocurriendo, desde los frames de Minsky hasta los grafos d
|
||
e conocimiento de Google. Lo que ha cambiado con la proliferac
|
||
ión de agentes de IA es la urgencia: cuando un agente puede mo
|
||
dificar código, infraestructura o configuración de forma autón
|
||
oma, la ausencia de un modelo explícito del proyecto no es una
|
||
deuda técnica. Es una pérdida de control.
|
||
359
|
||
360 La ontología no es la solución a ese problema. Es el nombre de
|
||
l problema que hay que resolver.
|
||
361 +
|
||
362 +#pagebreak()
|
||
363 +
|
||
364 +// ─── 4. TAOÍSMO Y ONTOLOGÍA OPERACIONAL ────────────────────
|
||
+────────────────
|
||
365 +
|
||
366 += Taoísmo, Yin-Yang y ontología operacional
|
||
367 +
|
||
368 +== Lo que la tradición occidental no vio
|
||
369 +
|
||
370 +La ontología occidental desde Parménides privilegia el *ser* s
|
||
+obre el *no-ser*, la *presencia* sobre la *ausencia*, la *iden
|
||
+tidad* sobre la *diferencia*. Toda la tradición aristotélica-e
|
||
+scolástica-analítica trabaja desde ese punto de partida.
|
||
371 +
|
||
372 +El Taoísmo invierte la pregunta. El Tao (道) es previo a la di
|
||
+stinción ser/no-ser. El primer capítulo del _Tao Te Ching_ (La
|
||
+ozi, ~siglo VI-IV aC):
|
||
373 +
|
||
374 +#align(center)[
|
||
375 + #text(style: "italic")[
|
||
376 + 道可道,非常道。名可名,非常名。\
|
||
377 + El Tao que puede nombrarse no es el Tao eterno.\
|
||
378 + El nombre que puede pronunciarse no es el nombre eterno.
|
||
379 + ]
|
||
380 +]
|
||
381 +
|
||
382 +Lo que no puede formalizarse no es una limitación del modelo —
|
||
+ es la condición de posibilidad de todo lo que sí puede formal
|
||
+izarse. La ontología operacional que puede expresarse completa
|
||
+mente en un schema no captura la realidad operacional completa
|
||
+. Heidegger llegó al mismo lugar por camino diferente: el *tra
|
||
+sfondo pre-temático* que hace posible cualquier acto de compre
|
||
+nsión explícita es precisamente lo que escapa a la formalizaci
|
||
+ón.
|
||
383 +
|
||
384 +== Yin-Yang — polaridad constitutiva, no oposición
|
||
385 +
|
||
386 +La confusión más frecuente: yin y yang no son *contrarios* sin
|
||
+o *complementarios que se definen mutuamente*. Las propiedades
|
||
+ estructurales del par son:
|
||
387 +
|
||
388 +- Cada polo *contiene una semilla del opuesto* — representada
|
||
+por el punto de color contrario en el símbolo
|
||
389 +- El exceso de un polo *genera su contrario* (極則反 — la extr
|
||
+emidad se invierte)
|
||
390 +- La tensión entre ellos *nunca se resuelve* en síntesis — sol
|
||
+o se gestiona dinámicamente
|
||
391 +- Uno *no existe sin el otro* — yin sin yang es vacío inerte,
|
||
+yang sin yin es movimiento sin forma
|
||
392 +
|
||
393 +Esto es estructuralmente distinto de la dialéctica hegeliana,
|
||
+que busca síntesis — resolver la contradicción en una unidad s
|
||
+uperior. El yin-yang no resuelve. La tensión es constitutiva,
|
||
+permanente. Hegel usa la contradicción como *palanca*; el Taoí
|
||
+smo la habita como *condición*.
|
||
394 +
|
||
395 +Heráclito (535-475 aC) es el occidental más cercano: su logos
|
||
+como tensión dinámica de opuestos — "el camino hacia arriba y
|
||
+hacia abajo son el mismo" — es estructuralmente idéntico al yi
|
||
+n-yang. La diferencia: Heráclito vive en la tensión, Hegel la
|
||
+usa para superarla.
|
||
396 +
|
||
397 +== Correspondencias con el modelo operacional
|
||
398 +
|
||
399 +#table(
|
||
400 + columns: (1.4fr, 1.3fr, 1.8fr, 1.8fr),
|
||
401 + inset: 7pt,
|
||
402 + fill: (col, row) => if row == 0 { rgb("#c04000") } else if c
|
||
+alc.odd(row) { rgb("#fdf6f0") } else { white },
|
||
403 + table.header(
|
||
404 + text(fill: white, weight: "bold")[Concepto taoísta],
|
||
405 + text(fill: white, weight: "bold")[Texto / Época],
|
||
406 + text(fill: white, weight: "bold")[Equivalente occidental m
|
||
+ás cercano],
|
||
407 + text(fill: white, weight: "bold")[Correspondencia operacio
|
||
+nal],
|
||
408 + ),
|
||
409 + [*Tao* (道) — principio previo a toda distinción],
|
||
410 + [Laozi, _Tao Te Ching_ \ (~6-4 aC)],
|
||
411 + [Ser de Heidegger — previo a los entes],
|
||
412 + [Trasfondo pre-temático que ningún schema captura completame
|
||
+nte],
|
||
413 +
|
||
414 + [*Yin / Yang* — polaridad que no se resuelve],
|
||
415 + [Tradición Zhou (~1100 aC) \ sistematizada en _I Ching_],
|
||
416 + [Heráclito — logos como tensión de opuestos],
|
||
417 + [Ontología (ser) / Reflection (devenir) — capas que se neces
|
||
+itan mutuamente],
|
||
418 +
|
||
419 + [*Wu wei* (無為) — acción sin forzar],
|
||
420 + [Laozi, _Tao Te Ching_],
|
||
421 + [Sin equivalente exacto en Occidente],
|
||
422 + ["No enforcement" — coherencia que emerge de adopción justif
|
||
+icada, no impuesta],
|
||
423 +
|
||
424 + [*Ji* (機) — el momento exacto de transformación],
|
||
425 + [Zhuangzi, _Zhuangzi_ \ (~4 aC)],
|
||
426 + [Kripke — mundos posibles accesibles],
|
||
427 + [Gates — umbral cualitativo entre estados, no condición bina
|
||
+ria],
|
||
428 +
|
||
429 + [*Wu ji → Tai ji* — de lo indiferenciado a la polaridad],
|
||
430 + [Zhou Dunyi (1017-1073) \ _Taijitu shuo_],
|
||
431 + [Husserl — ontología formal vs. regional],
|
||
432 + [schema.ncl (vacío universal) → core.ncl (polaridad concreta
|
||
+ del proyecto)],
|
||
433 +
|
||
434 + [*Relatividad perspectival*],
|
||
435 + [Zhuangzi — la rana del pozo],
|
||
436 + [Wittgenstein tardío — juegos de lenguaje],
|
||
437 + [Toda ontología es una conceptualización, no una captura de
|
||
+la realidad (Gruber)],
|
||
438 +)
|
||
439 +
|
||
440 +== Las cuatro correspondencias profundas
|
||
441 +
|
||
442 +*Yin/Yang ↔ Ontología/Reflection.* La dualidad ya está en el d
|
||
+iseño del protocolo. La ontología (core.ncl) captura lo que ES
|
||
+ — invariantes, estructura, ser; capa yang: formal, dura, defi
|
||
+nida. La reflection captura lo que DEVIENE — operaciones, modo
|
||
+s, movimiento; capa yin: fluida, procesual. Como en el símbolo
|
||
+: cada una contiene una semilla de la otra. La ontología descr
|
||
+ibe estados *futuros* (desired_state) — contiene movimiento. L
|
||
+a reflection puede *actualizar* la ontología vía ADRs — contie
|
||
+ne forma. Separarlas es necesario porque tienen ritmos de camb
|
||
+io distintos; fundirlas colapsaría el yin en el yang.
|
||
443 +
|
||
444 +*Wu wei ↔ "No enforcement".* Uno de los invariantes del protoc
|
||
+olo: coherencia voluntaria que emerge de la adopción justifica
|
||
+da, sin mecanismo de enforcement. Esto es wu wei aplicado a di
|
||
+seño de sistemas. No impones — creas las condiciones para que
|
||
+el alineamiento emerja naturalmente. Un sistema de tipos fuert
|
||
+es fuerza; una ontología operacional orienta. La diferencia es
|
||
+ exactamente la diferencia entre imponer el Tao y fluir con él
|
||
+.
|
||
445 +
|
||
446 +*Tensiones ↔ Yin-Yang permanente.* Las tensiones en un modelo
|
||
+operacional ("formalización vs. fricción de adopción", "ontolo
|
||
+gía vs. reflection") son explícitamente irresolubles. No se bu
|
||
+sca síntesis — se gestionan. Si eliminas la tensión entre form
|
||
+alización y adopción maximizando uno de los polos, el sistema
|
||
+muere: o es un schema perfecto que nadie adopta, o es caos ope
|
||
+racional que todos adoptan pero nadie puede razonar sobre él.
|
||
447 +
|
||
448 +*Gates ↔ Ji (機).* El concepto taoísta de ji es el punto de in
|
||
+flexión donde el potencial se actualiza — no un estado sino el
|
||
+ umbral entre estados. Dinámico, cualitativo, contextual. Las
|
||
+gates en el modelo operacional son exactamente esto: no checkb
|
||
+oxes — son condiciones que marcan el momento en que un estado
|
||
+puede transformarse en otro.
|
||
449 +
|
||
450 +== La crítica taoísta a la ontología clasificatoria
|
||
451 +
|
||
452 +Los sistemas como OWL intentan eliminar la ambigüedad mediante
|
||
+ clasificación precisa. El _Tao Te Ching_ advierte: cuanto más
|
||
+ preciso el nombre, más excluyes. La realidad vive en el espac
|
||
+io *entre* las categorías, no en las categorías mismas.
|
||
453 +
|
||
454 +Esto explica por qué las ontologías biomédicas — las más madur
|
||
+as del campo — sufren continuamente con casos límite, dependen
|
||
+cia del contexto y la necesidad de múltiples ejes de clasifica
|
||
+ción simultáneos. La vista taoísta diría: estáis intentando re
|
||
+solver una tensión constitutiva. La precisión y la cobertura s
|
||
+on yin y yang — no se resuelven, se equilibran.
|
||
455 +
|
||
456 +Zhuangzi va más lejos que Laozi. Toda distinción ontológica es
|
||
+ perspectival. Esto no lleva al nihilismo sino a la *apropiada
|
||
+ contextualidad*: la ontología correcta para un proyecto no es
|
||
+ la más formalmente precisa sino la que el equipo puede sosten
|
||
+er y evolucionar. Gruber llegó al mismo lugar en 1993 sin sabe
|
||
+rlo: una ontología es "una especificación de una conceptualiza
|
||
+ción" — un punto de vista compartido, no una verdad metafísica
|
||
+.
|
||
457 +
|
||
458 +#pagebreak()
|
||
459 +
|
||
460 +// ─── 5. DAGs ───────────────────────────────────────────────
|
||
+─────────────────
|
||
461 +
|
||
462 += DAGs — genealogía y función en ontología operacional
|
||
463 +
|
||
464 +== El problema que fuerza el grafo
|
||
465 +
|
||
466 +Antes del grafo hay un problema: ¿cómo representar conocimient
|
||
+o estructurado de forma que se pueda razonar sobre él? La pros
|
||
+a no es consultable ni verificable. Las listas planas pierden
|
||
+las relaciones. Las jerarquías de árbol pierden los nodos con
|
||
+múltiples padres. El grafo emerge como la estructura mínima qu
|
||
+e captura relaciones arbitrarias entre conceptos.
|
||
467 +
|
||
468 +Pero el grafo general tiene un problema: puede tener ciclos. Y
|
||
+ los ciclos en ontología son epistemológicamente problemáticos
|
||
+.
|
||
469 +
|
||
470 +== Por qué la aciclicidad — el problema de la justificación ci
|
||
+rcular
|
||
471 +
|
||
472 +Dos tradiciones independientes llegan al mismo resultado:
|
||
473 +
|
||
474 +*Aristóteles* (_Analíticos Posteriores_): una definición válid
|
||
+a procede de género más diferencia específica. El género es má
|
||
+s general que lo definido — la jerarquía es estrictamente desc
|
||
+endente. Si A se define en términos de B y B en términos de A,
|
||
+ ninguno está definido. La justificación circular es un defect
|
||
+o lógico.
|
||
475 +
|
||
476 +*Russell* (1901): la paradoja del conjunto de todos los conjun
|
||
+tos que no se contienen a sí mismos. La solución en _Principia
|
||
+ Mathematica_ (1910, con Whitehead) es la *teoría de tipos*: l
|
||
+os tipos forman una jerarquía estricta — un tipo de nivel N so
|
||
+lo puede referirse a tipos de nivel N-1 o inferior. Esto es es
|
||
+tructuralmente un DAG. La aciclicidad no es una restricción ar
|
||
+bitraria — es la solución formal al colapso por autorreferenci
|
||
+a.
|
||
477 +
|
||
478 +La convergencia: en lógica, ontología formal y teoría de tipos
|
||
+, la aciclicidad es el requisito de que las definiciones sean
|
||
+*bien fundadas*. No puede haber descenso infinito ni circulari
|
||
+dad.
|
||
479 +
|
||
480 +== Línea genealógica
|
||
481 +
|
||
482 +#table(
|
||
483 + columns: (0.8fr, 2fr, 2.5fr),
|
||
484 + inset: 7pt,
|
||
485 + fill: (col, row) => if row == 0 { rgb("#c04000") } else if c
|
||
+alc.odd(row) { rgb("#fdf6f0") } else { white },
|
||
486 + table.header(
|
||
487 + text(fill: white, weight: "bold")[Año],
|
||
488 + text(fill: white, weight: "bold")[Autor / Hito],
|
||
489 + text(fill: white, weight: "bold")[Contribución al DAG en o
|
||
+ntología],
|
||
490 + ),
|
||
491 + [384-322 aC],
|
||
492 + [Aristóteles — _Analíticos Posteriores_],
|
||
493 + [Definición bien fundada: jerarquía sin circularidad. Género
|
||
+ → diferencia → especie.],
|
||
494 +
|
||
495 + [1879],
|
||
496 + [Frege — _Begriffsschrift_],
|
||
497 + [Lógica de predicados: relaciones formales entre conceptos.
|
||
+Base para representar grafos de conocimiento.],
|
||
498 +
|
||
499 + [1901-1910],
|
||
500 + [Russell & Whitehead — _Principia Mathematica_],
|
||
501 + [Teoría de tipos como DAG: aciclicidad como solución al cola
|
||
+pso por autorreferencia.],
|
||
502 +
|
||
503 + [1933],
|
||
504 + [Tarski — "El concepto de verdad"],
|
||
505 + [Verdad como correspondencia entre proposiciones y estructur
|
||
+as (grafos). Base de la validación formal.],
|
||
506 +
|
||
507 + [1958],
|
||
508 + [US Navy — PERT charts (programa Polaris)],
|
||
509 + [DAG para planificación de proyectos: camino crítico como re
|
||
+corrido del grafo de dependencias temporales.],
|
||
510 +
|
||
511 + [1969],
|
||
512 + [Collins & Quillian — "Retrieval time from semantic memory"]
|
||
+,
|
||
513 + [Primera red semántica computacional: is-a como DAG. La topo
|
||
+logía del grafo predice tiempos de reacción humanos.],
|
||
514 +
|
||
515 + [1974],
|
||
516 + [Minsky — "A Framework for Representing Knowledge"],
|
||
517 + [Frames con herencia múltiple: DAG sobre árbol. Primer siste
|
||
+ma con nodos de múltiples padres.],
|
||
518 +
|
||
519 + [1976],
|
||
520 + [Feldman — Make],
|
||
521 + [Build system como DAG de dependencias. Orden topológico par
|
||
+a compilación incremental. Ciclos = error explícito.],
|
||
522 +
|
||
523 + [1985],
|
||
524 + [Brachman & Schmolze — KL-ONE],
|
||
525 + [Description Logic: subsunción formal como DAG. Antecedente
|
||
+directo de OWL.],
|
||
526 +
|
||
527 + [1988],
|
||
528 + [Pearl — _Probabilistic Reasoning in Intelligent Systems_],
|
||
529 + [Causalidad como DAG: la asimetría temporal hace la causalid
|
||
+ad inherentemente acíclica.],
|
||
530 +
|
||
531 + [2000],
|
||
532 + [Pearl — _Causality_],
|
||
533 + [Do-calculus: intervención como operación sobre el DAG causa
|
||
+l. Separación entre correlación y causa.],
|
||
534 +
|
||
535 + [2001],
|
||
536 + [Berners-Lee et al. — Web Semántica],
|
||
537 + [RDF/OWL: grafos de conocimiento como estándar industrial. D
|
||
+AG de subsunción en jerarquías de clases.],
|
||
538 +
|
||
539 + [2005],
|
||
540 + [Torvalds — Git],
|
||
541 + [Historia de commits como DAG: irreversibilidad del tiempo e
|
||
+n control de versiones. Merges = nodos con múltiples padres.],
|
||
542 +)
|
||
543 +
|
||
544 +== Las cuatro funciones del DAG en ontología operacional
|
||
545 +
|
||
546 +*① Traversal determinista para análisis de impacto.* Si cambia
|
||
+s un nodo, el DAG define exactamente qué nodos son alcanzables
|
||
+ desde él (descendientes) y qué nodos lo alcanzan (ancestros).
|
||
+ Esto es análisis de impacto: "si modifico este invariante, ¿q
|
||
+ué tensiones, prácticas y gates se ven afectadas?" En un grafo
|
||
+ cíclico esto es indecidible — el cierre transitivo de un nodo
|
||
+ puede ser todo el grafo.
|
||
547 +
|
||
548 +*② Orden topológico para ejecución.* Los modos operacionales s
|
||
+on DAGs de pasos con dependencias. El ordenamiento topológico
|
||
+da el orden de ejecución válido sin necesidad de un scheduler
|
||
+externo. Si el paso B depende del paso A, A siempre precede a
|
||
+B en cualquier topological sort.
|
||
549 +
|
||
550 +*③ Justificación bien fundada — sin circularidad epistémica.*
|
||
+El debate clásico en epistemología enfrenta fundacionalismo (e
|
||
+l conocimiento descansa en fundamentos no circulares — DAG con
|
||
+ nodos raíz) contra coherentismo (red de creencias mutuamente
|
||
+sustentadas — puede ser cíclica). La ontología operacional es
|
||
+fundacionalista por diseño: los invariantes son nodos raíz jus
|
||
+tificados por ADR explícito, no por otros nodos del grafo. Un
|
||
+ciclo significaría: "este invariante existe porque esta prácti
|
||
+ca existe, y esta práctica existe porque este invariante exist
|
||
+e" — dogma circular, no arquitectura.
|
||
551 +
|
||
552 +*④ Rollback con orden definido.* Deshacer cambios requiere un
|
||
+orden inverso bien definido. En un grafo cíclico no existe ese
|
||
+ orden. El DAG garantiza que el rollback siempre tiene una sec
|
||
+uencia válida.
|
||
553 +
|
||
554 +== La tensión con el Taoísmo — DAG vs. ciclo
|
||
555 +
|
||
556 +El DAG es *yang* en su estructura: direccional, jerárquico, as
|
||
+imétrico, irreversible. Codifica la flecha del tiempo — las ca
|
||
+usas preceden a los efectos, las definiciones preceden a lo de
|
||
+finido.
|
||
557 +
|
||
558 +El yin-yang taoísta es *cíclico*: yin genera yang, yang genera
|
||
+ yin. Las estaciones, el día y la noche, vida y muerte — todo
|
||
+retorna.
|
||
559 +
|
||
560 +La resolución está en separar dos temporalidades:
|
||
561 +
|
||
562 +- *Sincrónica* (snapshot): el DAG es válido dentro de un momen
|
||
+to dado. La ontología en $t_0$ es un grafo acíclico.
|
||
563 +- *Diacrónica* (evolución): la secuencia de snapshots puede te
|
||
+ner patrones cíclicos. Lo que era tensión puede convertirse en
|
||
+ invariante; lo que era práctica puede ser abandonado y redesc
|
||
+ubierto.
|
||
564 +
|
||
565 +El DAG captura la *estructura del ser en un momento*. El ciclo
|
||
+ taoísta captura el *proceso de transformación a través del ti
|
||
+empo*. Son complementarios, no contradictorios — exactamente c
|
||
+omo ontología y reflection son complementarios en el protocolo
|
||
+. El *I Ching* — el libro de los cambios — es un sistema para
|
||
+razonar sobre las transformaciones de un estado a otro: 64 hex
|
||
+agramas como estados (nodos), transformaciones entre ellos com
|
||
+o aristas. El sistema completo es un grafo. No un DAG — un gra
|
||
+fo con ciclos, porque la realidad vuelve.
|
||
566 +
|
||
567 +#pagebreak()
|
||
568 +
|
||
569 +// ─── 6. REFERENCIAS ────────────────────────────────────────
|
||
+─────────────────
|
||
570 +
|
||
571 += Referencias y lecturas recomendadas
|
||
572 +
|
||
573 +== Filosofía clásica y ontología
|
||
574 +
|
||
575 +#set par(first-line-indent: 0em)
|
||
576 +
|
||
577 +*Aristóteles.* _Metafísica_. Traducción de Tomás Calvo Martíne
|
||
+z. Madrid: Gredos, 1994. [~330 aC] \
|
||
578 +#text(fill: rgb("#666666"), size: 9.5pt)[El libro fundamental
|
||
+para la distinción esencia/accidente, potencia/acto y las cate
|
||
+gorías. El libro IX sobre potencia es la base del modelo estad
|
||
+o-actual/estado-deseado.]
|
||
579 +
|
||
580 +*Aristóteles.* _Analíticos Posteriores_. Traducción de Miguel
|
||
+Candel Sanmartín. Madrid: Gredos, 1988. [~350 aC] \
|
||
581 +#text(fill: rgb("#666666"), size: 9.5pt)[Formaliza el requisit
|
||
+o de definiciones bien fundadas — antecedente directo de la ac
|
||
+iclicidad en DAGs.]
|
||
582 +
|
||
583 +*Laozi.* _Tao Te Ching_. Traducción y comentarios de Stephen M
|
||
+itchell. Nueva York: Harper Perennial, 1992. [~siglo VI-IV aC]
|
||
+ \
|
||
584 +#text(fill: rgb("#666666"), size: 9.5pt)[Texto fundacional del
|
||
+ Taoísmo. Los primeros y últimos capítulos son los más relevan
|
||
+tes para la relación con ontología operacional.]
|
||
585 +
|
||
586 +*Zhuangzi.* _Zhuangzi: The Complete Writings_. Traducción de B
|
||
+rook Ziporyn. Indianapolis: Hackett, 2020. [~siglo IV aC] \
|
||
587 +#text(fill: rgb("#666666"), size: 9.5pt)[Especialmente los cap
|
||
+ítulos internos (1-7). La relatividad perspectival de Zhuangzi
|
||
+ como crítica de toda ontología clasificatoria.]
|
||
588 +
|
||
589 +*Frege, G.* _Begriffsschrift_. Halle: Nebert, 1879. \
|
||
590 +#text(fill: rgb("#666666"), size: 9.5pt)[Primera formulación d
|
||
+e la lógica de predicados. El antecedente formal de toda repre
|
||
+sentación de conocimiento estructurado.]
|
||
591 +
|
||
592 +*Russell, B. & Whitehead, A.N.* _Principia Mathematica_. Cambr
|
||
+idge: Cambridge University Press, 1910-1913. \
|
||
593 +#text(fill: rgb("#666666"), size: 9.5pt)[La teoría de tipos co
|
||
+mo DAG para evitar la autorreferencia circular. El capítulo in
|
||
+troductorio explica el principio del círculo vicioso.]
|
||
594 +
|
||
595 +*Wittgenstein, L.* _Tractatus Logico-Philosophicus_. Londres:
|
||
+Kegan Paul, 1922. \
|
||
596 +#text(fill: rgb("#666666"), size: 9.5pt)["Los límites de mi le
|
||
+nguaje son los límites de mi mundo." El fundamento de por qué
|
||
+el schema Nickel define la frontera de lo representable en el
|
||
+sistema.]
|
||
597 +
|
||
598 +*Wittgenstein, L.* _Investigaciones filosóficas_. Oxford: Blac
|
||
+kwell, 1953. \
|
||
599 +#text(fill: rgb("#666666"), size: 9.5pt)[Juegos de lenguaje co
|
||
+mo práctica. El significado como uso — los modos operacionales
|
||
+ como juegos de lenguaje de un proyecto.]
|
||
600 +
|
||
601 +*Hegel, G.W.F.* _Fenomenología del Espíritu_. Traducción de Ma
|
||
+nuel Jiménez Redondo. Valencia: Pre-Textos, 2006. [1807] \
|
||
602 +#text(fill: rgb("#666666"), size: 9.5pt)[Dialéctica tesis-antí
|
||
+tesis-síntesis. Contrástese con el yin-yang: la diferencia ent
|
||
+re síntesis y tensión gestionada permanentemente.]
|
||
603 +
|
||
604 +*Husserl, E.* _Ideas relativas a una fenomenología pura y una
|
||
+filosofía fenomenológica_. México: FCE, 1993. [1913] \
|
||
605 +#text(fill: rgb("#666666"), size: 9.5pt)[La distinción ontolog
|
||
+ía formal/regional — estructura vacía universal vs. conceptos
|
||
+de dominio específico.]
|
||
606 +
|
||
607 +*Whitehead, A.N.* _Process and Reality_. Nueva York: Free Pres
|
||
+s, 1978. [1929] \
|
||
608 +#text(fill: rgb("#666666"), size: 9.5pt)[La realidad como proc
|
||
+eso, no sustancia. El fundamento filosófico de la capa reflect
|
||
+ion como devenir distinto del ser ontológico.]
|
||
609 +
|
||
610 +*Kripke, S.* _Naming and Necessity_. Cambridge: Harvard Univer
|
||
+sity Press, 1980. \
|
||
611 +#text(fill: rgb("#666666"), size: 9.5pt)[Propiedades esenciale
|
||
+s rígidas y semántica de mundos posibles. El fundamento modal
|
||
+de los invariantes operacionales.]
|
||
612 +
|
||
613 +*Searle, J.* _The Construction of Social Reality_. Nueva York:
|
||
+ Free Press, 1995. \
|
||
614 +#text(fill: rgb("#666666"), size: 9.5pt)[Hechos institucionale
|
||
+s como fundamento de las decisiones declaradas. El ADR como ac
|
||
+to de habla colectivo que crea realidad operacional.]
|
||
615 +
|
||
616 +*Parfit, D.* _Reasons and Persons_. Oxford: Oxford University
|
||
+Press, 1984. \
|
||
617 +#text(fill: rgb("#666666"), size: 9.5pt)[Identidad a través de
|
||
+l tiempo. La pregunta "¿es el mismo proyecto?" cuando sus inva
|
||
+riantes cambian vía ADR.]
|
||
618 +
|
||
619 +*Ladyman, J. & Ross, D.* _Every Thing Must Go: Metaphysics Nat
|
||
+uralized_. Oxford: Oxford University Press, 2007. \
|
||
620 +#text(fill: rgb("#666666"), size: 9.5pt)[Realismo estructural:
|
||
+ las relaciones son más reales que las entidades. El DAG como
|
||
+estructura fundamental, los nodos como secundarios.]
|
||
621 +
|
||
622 +*Quine, W.V.O.* "On What There Is." _Review of Metaphysics_, 2
|
||
+(5), 1948. \
|
||
623 +#text(fill: rgb("#666666"), size: 9.5pt)[El concepto de compro
|
||
+miso ontológico: toda teoría asume la existencia de ciertas en
|
||
+tidades. Todo schema asume una ontología aunque no lo declare.
|
||
+]
|
||
624 +
|
||
625 +*Tarski, A.* "The Concept of Truth in Formalized Languages." E
|
||
+n _Logic, Semantics, Metamathematics_. Oxford: Clarendon Press
|
||
+, 1956. [1933] \
|
||
626 +#text(fill: rgb("#666666"), size: 9.5pt)[Verdad como correspon
|
||
+dencia. El fundamento de la validación formal — nickel typeche
|
||
+ck como verificación tarsquiana.]
|
||
627 +
|
||
628 +== Inteligencia artificial y representación del conocimiento
|
||
629 +
|
||
630 +*Minsky, M.* "A Framework for Representing Knowledge." MIT AI
|
||
+Lab Memo 306, 1974. \
|
||
631 +#text(fill: rgb("#666666"), size: 9.5pt)[Los frames como prime
|
||
+ra estructura computacional análoga a la sustancia aristotélic
|
||
+a con propiedades heredables.]
|
||
632 +
|
||
633 +*Collins, A.M. & Quillian, M.R.* "Retrieval time from semantic
|
||
+ memory." _Journal of Verbal Learning and Verbal Behavior_, 8(
|
||
+2), 240-247, 1969. \
|
||
634 +#text(fill: rgb("#666666"), size: 9.5pt)[Primera red semántica
|
||
+ computacional. Demuestra que la topología del grafo de conoci
|
||
+miento predice el comportamiento cognitivo.]
|
||
635 +
|
||
636 +*Brachman, R.J. & Schmolze, J.G.* "An overview of the KL-ONE k
|
||
+nowledge representation system." _Cognitive Science_, 9(2), 17
|
||
+1-216, 1985. \
|
||
637 +#text(fill: rgb("#666666"), size: 9.5pt)[Description Logic: la
|
||
+ subsunción como relación formal que genera el DAG de concepto
|
||
+s. Antecedente teórico de OWL.]
|
||
638 +
|
||
639 +*Gruber, T.* "A translation approach to portable ontology spec
|
||
+ifications." _Knowledge Acquisition_, 5(2), 199-220, 1993. \
|
||
640 +#text(fill: rgb("#666666"), size: 9.5pt)[La definición canónic
|
||
+a: ontología como especificación de una conceptualización. Ref
|
||
+erencia obligatoria para cualquier trabajo en ontología de sof
|
||
+tware.]
|
||
641 +
|
||
642 +*Lenat, D.B. & Guha, R.V.* _Building Large Knowledge-Based Sys
|
||
+tems: Representation and Inference in the Cyc Project_. Readin
|
||
+g: Addison-Wesley, 1990. \
|
||
643 +#text(fill: rgb("#666666"), size: 9.5pt)[El proyecto más ambic
|
||
+ioso de ontología operacional. Sus fracasos son tan informativ
|
||
+os como sus logros.]
|
||
644 +
|
||
645 +*Pearl, J.* _Probabilistic Reasoning in Intelligent Systems_.
|
||
+San Mateo: Morgan Kaufmann, 1988. \
|
||
646 +#text(fill: rgb("#666666"), size: 9.5pt)[Bayesian networks com
|
||
+o DAGs causales. La formalización de por qué la causalidad es
|
||
+inherentemente acíclica.]
|
||
647 +
|
||
648 +*Pearl, J.* _Causality: Models, Reasoning, and Inference_. Cam
|
||
+bridge: Cambridge University Press, 2000. \
|
||
649 +#text(fill: rgb("#666666"), size: 9.5pt)[El do-calculus. Disti
|
||
+nción entre correlación y causa como operaciones sobre el DAG.
|
||
+ Segunda edición (2009) incluye el modelo causal completo.]
|
||
650 +
|
||
651 +*Guarino, N. (ed.)* _Formal Ontology in Information Systems_.
|
||
+Amsterdam: IOS Press, 1998. \
|
||
652 +#text(fill: rgb("#666666"), size: 9.5pt)[Actas de FOIS'98. La
|
||
+conferencia fundacional del campo. Especialmente el artículo i
|
||
+ntroductorio de Guarino sobre ontología formal vs. de dominio.
|
||
+]
|
||
653 +
|
||
654 +*Berners-Lee, T., Hendler, J. & Lassila, O.* "The Semantic Web
|
||
+." _Scientific American_, 284(5), 34-43, 2001. \
|
||
655 +#text(fill: rgb("#666666"), size: 9.5pt)[El artículo que popul
|
||
+arizó las ontologías en ingeniería de software. La visión de l
|
||
+a web como grafo de conocimiento estructurado.]
|
||
656 +
|
||
657 +== Ingeniería de software y praxis
|
||
658 +
|
||
659 +*Nygard, M.* "Documenting Architecture Decisions." Cognitect B
|
||
+log, 2011. Disponible en: cognitect.com/blog \
|
||
660 +#text(fill: rgb("#666666"), size: 9.5pt)[La propuesta original
|
||
+ de ADRs como documentación ligera de decisiones. El precursor
|
||
+ directo de los ADRs con constraints tipadas.]
|
||
661 +
|
||
662 +*Brown, S.* _Software Architecture for Developers_. Leanpub, 2
|
||
+014. \
|
||
663 +#text(fill: rgb("#666666"), size: 9.5pt)[El modelo C4 como alt
|
||
+ernativa a los diagramas UML. Introduce la idea de múltiples n
|
||
+iveles de abstracción para describir un sistema.]
|
||
664 +
|
||
665 +*Hohpe, G. & Woolf, B.* _Enterprise Integration Patterns_. Bos
|
||
+ton: Addison-Wesley, 2003. \
|
||
666 +#text(fill: rgb("#666666"), size: 9.5pt)[Patrones como vocabul
|
||
+ario compartido — la idea de que nombrar los patrones operacio
|
||
+nales es un acto ontológico.]
|
||
667 +
|
||
668 +== Perspectivas adicionales
|
||
669 +
|
||
670 +*Zhou Dunyi.* _Taijitu shuo_ (Explicación del Diagrama del Sup
|
||
+remo Último). [1017-1073] \
|
||
671 +#text(fill: rgb("#666666"), size: 9.5pt)[La cosmología taoísta
|
||
+ sistematizada: wu ji → tai ji → yin-yang. La transición de lo
|
||
+ indiferenciado a la polaridad como modelo de emergencia estru
|
||
+ctural.]
|
||
672 +
|
||
673 +*Heidegger, M.* _Ser y Tiempo_. Traducción de Jorge Eduardo Ri
|
||
+vera. Santiago: Editorial Universitaria, 1997. [1927] \
|
||
674 +#text(fill: rgb("#666666"), size: 9.5pt)[El trasfondo pre-temá
|
||
+tico que ninguna ontología captura completamente. La ausencia
|
||
+notable en todos los modelos operacionales de software.]
|
||
675 +
|
||
676 +*Heráclito.* _Fragmentos_. Edición de Rodolfo Mondolfo. Buenos
|
||
+ Aires: Losada, 2007. [~500 aC] \
|
||
677 +#text(fill: rgb("#666666"), size: 9.5pt)[El único pensador pre
|
||
+socrático estructuralmente equivalente al yin-yang. El fragmen
|
||
+to DK22B60 — "el camino hacia arriba y hacia abajo son el mism
|
||
+o" — es el punto de partida.]
|
||
678 +
|
||
679 +*Bateson, G.* _Steps to an Ecology of Mind_. Nueva York: Balla
|
||
+ntine, 1972. \
|
||
680 +#text(fill: rgb("#666666"), size: 9.5pt)[La diferencia que hac
|
||
+e una diferencia. Epistemología sistémica que conecta Taoísmo,
|
||
+ cibernética y representación del conocimiento. Perspectiva po
|
||
+co citada en CS pero fundamentalmente relevante.]
|
||
681 +
|
||
682 +*Winograd, T. & Flores, F.* _Understanding Computers and Cogni
|
||
+tion_. Norwood: Ablex, 1986. \
|
||
683 +#text(fill: rgb("#666666"), size: 9.5pt)[La crítica más influy
|
||
+ente a la IA simbólica desde Heidegger. Argumenta que el trasf
|
||
+ondo de comprensión no puede formalizarse — límite de toda ont
|
||
+ología operacional.]
|
||
|
||
⏺ Bash(typst compile ontologia-filosofia-software.typ
|
||
ontologia-filosofia-software.pdf 2>&1)
|
||
⎿ (No output)
|
||
|
||
⏺ Bash(ls -lh /Users/Akasha/Development/ontoref/assets/presentation/ontologia-fi
|
||
losofia-software.pdf && typst query --field value
|
||
ontologia-filosofia-software.typ "<sy…)
|
||
⎿ -rw-r--r--@ 1 jesusperezlorenzo admin 321K Apr 24 22:46 /Users/Akas
|
||
ha/Development/ontoref/assets/presentation/ontologia-filosofia-softwar
|
||
e.pdf
|
||
… +2 lines (ctrl+o to expand)
|
||
|
||
⏺ PDF actualizado — 20 páginas, 321K. Lo que se añadió:
|
||
|
||
Sección 4 — Taoísmo, Yin-Yang y ontología operacional
|
||
- Por qué el Taoísmo ve lo que la tradición occidental no ve (el trasfondo
|
||
pre-temático que ningún schema captura)
|
||
- La distinción estructural entre yin-yang y dialéctica hegeliana — polaridad
|
||
permanente vs. síntesis
|
||
- Tabla comparativa: Tao, Wu wei, Ji, Wu ji/Tai ji, relatividad perspectival ↔
|
||
equivalentes occidentales y operacionales
|
||
- Las cuatro correspondencias profundas con el modelo de ontoref
|
||
- La crítica taoísta a la ontología OWL-clasificatoria
|
||
|
||
Sección 5 — DAGs: genealogía y función
|
||
- El problema que fuerza el grafo y por qué la aciclicidad no es arbitraria
|
||
- Tabla genealógica: Aristóteles (384 aC) → Git (2005), con contribución de
|
||
cada autor al DAG en ontología
|
||
- Las cuatro funciones del DAG: traversal determinista, orden topológico,
|
||
justificación bien fundada, rollback ordenado
|
||
- La tensión DAG/ciclo taoísta — resolución por separación
|
||
sincrónico/diacrónico
|
||
|
||
Sección 6 — Referencias (29 entradas anotadas)
|
||
- Filosofía clásica: Aristóteles, Laozi, Zhuangzi, Frege, Russell,
|
||
Wittgenstein, Hegel, Husserl, Whitehead, Kripke, Searle, Parfit, Ladyman,
|
||
Quine, Tarski
|
||
- IA y representación del conocimiento: Minsky, Collins/Quillian,
|
||
Brachman/Schmolze, Gruber, Lenat, Pearl, Guarino, Berners-Lee
|
||
- Ingeniería de software: Nygard, Brown, Hohpe/Woolf
|
||
- Perspectivas adicionales: Zhou Dunyi, Heidegger, Heráclito, Bateson,
|
||
Winograd/Flores
|
||
|
||
✻ Baked for 3m 4s
|
||
|
||
※ recap: Generating a philosophical PDF on ontology, Taoism, DAGs and their software parallels. The expanded document with new sections and 29 annotated references compiled successfully to 20 pages at assets/presentation/ontologia-filosofia-software.pdf. (disable recaps in /config)
|
||
|
||
❯ ¿ En todo esto tiene algún sentido la física cuántica y la computación
|
||
cuántica ?
|
||
|
||
⏺ Sí, pero hay que separar dónde la conexión es genuina de dónde es metáfora
|
||
seductora.
|
||
|
||
---
|
||
Donde la física cuántica es genuinamente relevante — ontología filosófica
|
||
|
||
El golpe más profundo: Aristóteles estaba equivocado en el nivel fundamental.
|
||
|
||
La ontología aristotélica asume que las sustancias tienen propiedades
|
||
definidas. La mecánica cuántica demuestra que, en el nivel fundamental, las
|
||
propiedades no son definidas hasta que se miden. Un electrón no tiene posición
|
||
— la posición emerge del acto de medición. Esto no es ignorancia del
|
||
observador sobre una propiedad preexistente — el teorema de Kochen-Specker
|
||
(1967) lo prueba formalmente: es imposible asignar valores definidos a todos
|
||
los observables cuánticos simultáneamente, incluso antes de la medición. La
|
||
indeterminación es ontológica, no epistémica.
|
||
|
||
El suelo sobre el que se construyeron 2.300 años de ontología occidental se
|
||
mueve.
|
||
|
||
---
|
||
Las tres conexiones genuinas
|
||
|
||
1. Complementariedad de Bohr ↔ Yin-Yang y la dualidad Ontología/Reflection
|
||
|
||
Niels Bohr (1885-1962) formuló el principio de complementariedad: onda y
|
||
partícula son dos descripciones mutuamente excluyentes pero igualmente
|
||
necesarias del mismo fenómeno. No puedes observar ambas simultáneamente — el
|
||
aparato de medición determina qué aspecto revelas.
|
||
|
||
Esto es estructuralmente idéntico al yin-yang. Bohr lo sabía — adoptó el
|
||
símbolo taoísta como parte de su escudo de armas cuando fue ennoblecido en
|
||
1947. La inscripción: Contraria sunt complementa — los contrarios son
|
||
complementarios.
|
||
|
||
La dualidad ontología/reflection del modelo operacional tiene la misma
|
||
estructura: no puedes capturar el ser y el devenir en una única
|
||
representación. El "aparato de medición" — qué preguntas haces al sistema —
|
||
determina qué aspecto revelas. La capa que uses (core.ncl o los modos de
|
||
reflection) determina qué aspecto del proyecto ves. Ninguna es más verdadera —
|
||
son complementarias.
|
||
|
||
2. Contextualidad cuántica ↔ Ontología perspectival
|
||
|
||
El teorema de Kochen-Specker (1967) prueba algo más radical que la
|
||
incertidumbre de Heisenberg: el resultado de medir un observable cuántico
|
||
depende de qué otros observables se miden simultáneamente. Las propiedades son
|
||
contextuales — no existen independientemente del contexto de medición.
|
||
|
||
Esto conecta con tres tradiciones de nuestra discusión:
|
||
|
||
- Zhuangzi: toda distinción ontológica es perspectival — la rana del pozo no
|
||
puede imaginar el mar
|
||
- Wittgenstein tardío: el significado depende del juego de lenguaje — del
|
||
contexto de uso
|
||
- Gruber: una ontología es una conceptualización, no una captura de la
|
||
realidad
|
||
|
||
La contextualidad cuántica convierte esto de posición filosófica a hecho
|
||
físico. Las propiedades no están en las cosas — emergen de la interacción
|
||
entre la cosa y el sistema de observación.
|
||
|
||
Para la ontología operacional: el "estado" de un proyecto es siempre relativo
|
||
al actor y al contexto de consulta. Un agente IA y un desarrollador humano
|
||
consultando el mismo core.ncl están haciendo mediciones con aparatos
|
||
distintos. Lo que ven es complementario, no idéntico.
|
||
|
||
3. El problema del observador ↔ El trasfondo que no puede formalizarse
|
||
|
||
En mecánica cuántica, la medición colapsa la función de onda — el observador
|
||
es parte del sistema. No hay view from nowhere (Thomas Nagel, 1986). Todo
|
||
conocimiento es conocimiento desde una posición.
|
||
|
||
Esto es exactamente lo que Heidegger llamó el trasfondo pre-temático — la
|
||
condición de posibilidad de cualquier formalización que ella misma no puede
|
||
ser formalizada. Y lo que el Tao Te Ching afirma en su primer verso: el Tao
|
||
que puede nombrarse no es el Tao eterno.
|
||
|
||
La mecánica cuántica convierte esto en física: el acto de observar constituye
|
||
lo observado. La ontología operacional que crees que describes objetivamente
|
||
está siendo constituida por el acto de escribirla.
|
||
|
||
---
|
||
La interpretación más relevante — Mecánica Cuántica Relacional (Rovelli, 1996)
|
||
|
||
Carlo Rovelli propuso en 1996 una interpretación de la mecánica cuántica
|
||
directamente pertinente a esta conversación: no existen estados absolutos —
|
||
solo estados relativos a otros sistemas. El estado de una partícula no es una
|
||
propiedad intrínseca — es una propiedad relacional respecto al sistema con el
|
||
que interactúa.
|
||
|
||
Esto es la ontología más radical posible: no hay propiedades, solo relaciones.
|
||
Ladyman y Ross (que ya aparecen en nuestra tabla) llegaron al mismo lugar
|
||
desde la filosofía de la física: realismo estructural — las estructuras
|
||
relacionales son lo real, las entidades son secundarias.
|
||
|
||
Para el modelo operacional: el "estado" de un proyecto (current_state en
|
||
state.ncl) no es una propiedad intrínseca del proyecto — es una propiedad
|
||
relacional respecto al actor que consulta, los objetivos que se persiguen, el
|
||
momento en el ciclo de vida. Dos actores con marcos de referencia distintos
|
||
pueden tener mediciones del estado coherentes pero distintas. No hay
|
||
contradicción — hay contextualidad relacional.
|
||
|
||
---
|
||
La computación cuántica — honestidad sobre sus límites aquí
|
||
|
||
La computación cuántica tiene relevancia limitada para la ontología
|
||
operacional en software hoy. Las razones son prácticas, no filosóficas:
|
||
|
||
┌────────────────┬────────────────────────────────────────────────────────┐
|
||
│ Aspecto │ Situación real │
|
||
├────────────────┼────────────────────────────────────────────────────────┤
|
||
│ Tamaño de los │ Los grafos de ontología de proyecto son pequeños │
|
||
│ grafos │ (decenas a centenas de nodos). La ventaja cuántica │
|
||
│ │ aparece a escala masiva. │
|
||
├────────────────┼────────────────────────────────────────────────────────┤
|
||
│ Algoritmos │ Grover (búsqueda no estructurada: O(√N)) y Shor │
|
||
│ relevantes │ (factorización) no mapean a consultas típicas sobre │
|
||
│ │ ontologías de proyecto. │
|
||
├────────────────┼────────────────────────────────────────────────────────┤
|
||
│ │ Los sistemas cuánticos son extremadamente frágiles — │
|
||
│ Decoherencia │ cualquier interacción con el entorno colapsa la │
|
||
│ │ superposición. El uso práctico requiere aislamiento │
|
||
│ │ que contradice la operación continua. │
|
||
├────────────────┼────────────────────────────────────────────────────────┤
|
||
│ Estado del │ Los computadores cuánticos actuales (2026) tienen │
|
||
│ arte │ decenas a cientos de qubits con alta tasa de error. │
|
||
│ │ Los problemas de ontología no son el caso de uso. │
|
||
└────────────────┴────────────────────────────────────────────────────────┘
|
||
|
||
Donde sí hay investigación activa y filosóficamente interesante:
|
||
|
||
Redes semánticas cuánticas — representar relaciones entre conceptos con
|
||
amplitudes de probabilidad en lugar de valores booleanos. Un concepto no es o
|
||
no es subclase de otro — lo es con cierta amplitud. Esto captura algo que las
|
||
ontologías OWL pierden: el conocimiento humano no es binario, es gradual y
|
||
contextual.
|
||
|
||
Bayesian networks cuánticas — Pearl formalizó la causalidad como DAG con
|
||
probabilidades condicionales clásicas. La extensión cuántica reemplaza las
|
||
probabilidades por amplitudes complejas, permitiendo modelar correlaciones
|
||
causales sin explicación clásica. Relevante para sistemas donde las
|
||
dependencias entre componentes exhiben comportamiento emergente no reducible a
|
||
sus partes.
|
||
|
||
Quantum knowledge graphs — investigación emergente (2020-presente) sobre
|
||
representar grafos de conocimiento en espacios de Hilbert. La similitud entre
|
||
dos conceptos se convierte en producto interno de vectores de estado. Esto es
|
||
la base matemática de los embeddings en modelos de lenguaje — los LLMs ya
|
||
están haciendo algo cuántico-adjacent sin saberlo.
|
||
|
||
---
|
||
La conexión más profunda — y menos obvia
|
||
|
||
Los Large Language Models operan en espacios vectoriales de alta dimensión
|
||
donde el significado es relacional y contextual. Esto no es metáfora cuántica
|
||
— es la misma matemática de espacios de Hilbert que usa la mecánica cuántica,
|
||
aplicada a representación semántica.
|
||
|
||
La ontología operacional (core.ncl, invariantes, tensiones) es, en este
|
||
contexto, una base en ese espacio — un conjunto de vectores ortogonales que
|
||
fijan el marco de referencia en el que el agente opera. Sin esa base, el
|
||
agente opera en un espacio de alta dimensión sin orientación — genera texto
|
||
coherente localmente pero sin anclaje semántico al proyecto concreto.
|
||
|
||
Inyectar el contexto ontológico al inicio de una sesión de agente es, en la
|
||
geometría de estos modelos, fijar el marco de referencia antes de que el
|
||
agente empiece a computar. Es, literalmente, una operación de cambio de base
|
||
en el espacio de representación.
|
||
|
||
---
|
||
Síntesis honesta
|
||
|
||
Dominio: Física cuántica → ontología filosófica
|
||
Relevancia: Alta y genuina
|
||
Por qué: Kochen-Specker destruye el Aristóteles ingenuo; complementariedad
|
||
formaliza el yin-yang; Rovelli formaliza la ontología relacional
|
||
────────────────────────────────────────
|
||
Dominio: Física cuántica → ontología operacional en software
|
||
Relevancia: Media, principalmente filosófica
|
||
Por qué: Contextualidad y relacionalidad son principios de diseño, no solo
|
||
metáforas
|
||
────────────────────────────────────────
|
||
Dominio: Computación cuántica → ontología operacional hoy
|
||
Relevancia: Baja, prácticamente nula
|
||
Por qué: Escala incorrecta, algoritmos que no mapean, hardware inmaduro
|
||
────────────────────────────────────────
|
||
Dominio: Matemáticas cuánticas → LLMs y agentes
|
||
Relevancia: Alta y directa
|
||
Por qué: Espacios de Hilbert, productos internos, bases ortogonales — es la
|
||
misma geometría
|
||
|
||
La física cuántica importa aquí no porque vayamos a correr ontologías en
|
||
computadores cuánticos — sino porque demuestra que las asunciones ontológicas
|
||
sobre las que construimos el pensamiento clásico (propiedades definidas,
|
||
estados absolutos, observador separado del sistema) son físicamente
|
||
incorrectas en el nivel fundamental.
|
||
|
||
Eso no invalida la ontología operacional — la valida en otro sentido: si ni la
|
||
realidad física tiene propiedades absolutas independientes del contexto de
|
||
observación, menos las tendrá un proyecto de software. La ontología
|
||
operacional es contextual, relacional y perspectival por diseño correcto, no
|
||
por limitación.
|
||
|
||
✻ Sautéed for 1m 48s
|
||
|
||
❯ por qué entonces es relevante la ontología operaciona y la reflection con los
|
||
DAG en desarrollo de software e infraestructuras digitales
|
||
|
||
⏺ La respuesta honesta requiere separar tres planos: qué problema existe, qué
|
||
aporta cada capa, y por qué ahora más que nunca.
|
||
|
||
---
|
||
El problema real — no es técnico, es epistémico
|
||
|
||
El software moderno tiene un déficit estructural que no se resuelve con
|
||
mejores herramientas:
|
||
|
||
La complejidad ha superado la capacidad de comprensión individual. Un sistema
|
||
de microservicios en Kubernetes con Terraform, pipelines de CI/CD, múltiples
|
||
equipos y agentes de IA trabajando en paralelo no cabe en la cabeza de ninguna
|
||
persona. Nunca cabió — pero durante años pudimos fingir que sí.
|
||
|
||
Lo que resulta de eso no es ignorancia puntual — es deriva epistémica
|
||
sistémica:
|
||
|
||
Lo que el sistema hace ≠ Lo que el equipo cree que hace
|
||
Lo que la infra tiene desplegado ≠ Lo que Terraform declara
|
||
Lo que el ADR decidió ≠ Lo que el código implementa
|
||
Lo que el agente asume ≠ Lo que el contexto real requiere
|
||
|
||
Cada una de esas brechas es silenciosa, acumulativa, y solo se descubre cuando
|
||
falla en producción.
|
||
|
||
---
|
||
Por qué la ontología operacional — específicamente
|
||
|
||
Una ontología operacional no documenta el sistema. Es el modelo del sistema
|
||
que el propio sistema puede leer.
|
||
|
||
La diferencia no es de grado — es de naturaleza:
|
||
|
||
┌──────────────────────────┬──────────────────────────────────────────────┐
|
||
│ Documentación │ Ontología operacional │
|
||
│ tradicional │ │
|
||
├──────────────────────────┼──────────────────────────────────────────────┤
|
||
│ Prosa — no consultable │ Grafo tipado — consultable con queries │
|
||
├──────────────────────────┼──────────────────────────────────────────────┤
|
||
│ Estática — se │ Verificada en cada commit (typecheck) │
|
||
│ desactualiza │ │
|
||
├──────────────────────────┼──────────────────────────────────────────────┤
|
||
│ Describe lo que hubo │ Formaliza lo que ES y lo que debe ser │
|
||
├──────────────────────────┼──────────────────────────────────────────────┤
|
||
│ Solo legible por humanos │ Legible por humanos, agentes, CI │
|
||
├──────────────────────────┼──────────────────────────────────────────────┤
|
||
│ Captura el qué │ Captura el qué, el por qué, el no puede │
|
||
│ │ cambiar │
|
||
└──────────────────────────┴──────────────────────────────────────────────┘
|
||
|
||
Lo que la ontología operacional hace en software e infra que nada más hace:
|
||
|
||
① Formaliza lo que no puede romperse. Los invariantes no son comentarios — son
|
||
constraints tipadas que el sistema verifica. Cuando alguien o algo intenta
|
||
violarlos, falla antes del runtime, no después.
|
||
|
||
② Captura las tensiones activas como ciudadanos de primera clase. "Coste vs.
|
||
disponibilidad", "velocidad de despliegue vs. estabilidad" — estos trade-offs
|
||
viven en la ontología, no en la cabeza de quien lleva más tiempo en el equipo.
|
||
Cuando ese alguien se va, los trade-offs permanecen.
|
||
|
||
③ Separa el ser del devenir. Lo que el proyecto es (core.ncl) tiene ritmo de
|
||
cambio diferente a lo que el proyecto opera (reflection). Fusionarlos — como
|
||
hace cualquier README o wiki — produce documentación que siempre está
|
||
desactualizada en la mitad más importante.
|
||
|
||
④ Da al agente de IA el contexto que no puede inferir del código. Un agente
|
||
puede leer todo el código de un sistema y no saber que hay un acuerdo con el
|
||
equipo de seguridad que impide escalar horizontalmente cierto servicio, o que
|
||
la decisión de usar gRPC interno fue consecuencia de una tensión específica
|
||
con latencia que no está en ningún archivo. La ontología operacional hace eso
|
||
explícito y machine-readable.
|
||
|
||
---
|
||
Por qué los DAGs — específicamente
|
||
|
||
Los DAGs no son una elección estética. Son la única estructura que garantiza
|
||
cuatro propiedades simultáneamente:
|
||
|
||
① Análisis de impacto decidible. Antes de cambiar un invariante, una práctica,
|
||
o un nodo de infra — recorre el DAG y sabes exactamente qué se ve afectado.
|
||
En prosa o grafo cíclico esto no es computable de forma general.
|
||
|
||
Concreto: en Terraform, el grafo de recursos es un DAG. terraform plan recorre
|
||
ese grafo para determinar qué debe crearse, modificarse o destruirse en qué
|
||
orden. Eso funciona porque el grafo es acíclico. Si hubiera ciclos, el plan
|
||
sería indecidible.
|
||
|
||
② Orden topológico para ejecución fiable. Cualquier operación con dependencias
|
||
— despliegue, migración, rollback, onboarding — tiene un orden correcto. El
|
||
DAG lo da sin necesidad de un coordinador central. Este es el principio detrás
|
||
de Make (1976), Bazel, Gradle, y cualquier build system no trivial.
|
||
|
||
③ Justificación sin circularidad. Si el invariante A existe porque la práctica
|
||
B lo requiere, y la práctica B existe porque el invariante A lo define —
|
||
tienes dogma, no arquitectura. El DAG hace esa circularidad visible e
|
||
inaceptable. Fuerza que cada nodo tenga justificación bien fundada.
|
||
|
||
④ Rollback determinista. El inverso topológico del DAG es siempre computable.
|
||
Cualquier operación es reversible en orden definido. Sin DAG, el rollback es
|
||
un proceso manual, frágil y que depende de que alguien recuerde el orden
|
||
correcto.
|
||
|
||
---
|
||
Por qué la reflection — específicamente
|
||
|
||
La ontología captura el ser. Pero los sistemas de software no solo son —
|
||
operan. La reflection es la capa que hace la ontología ejecutable:
|
||
|
||
Modos como DAGs operacionales. Un procedimiento sin DAG es una lista de pasos
|
||
que alguien puede ejecutar en cualquier orden, saltar, o ignorar. Un modo como
|
||
DAG tiene dependencias explícitas — el sistema puede verificar que se ejecutó
|
||
correctamente antes de avanzar. Esto es la diferencia entre un runbook y una
|
||
especificación ejecutable.
|
||
|
||
ADRs con constraints tipadas. Una decisión sin constraints es prosa. Una
|
||
decisión con constraints tipadas es un contrato que el CI puede verificar en
|
||
cada commit. La pregunta "¿estamos violando alguna decisión arquitectural?"
|
||
pasa de ser reflexión manual a ser una comprobación automática.
|
||
|
||
Historial como append-only. La reflection registra qué operaciones ocurrieron,
|
||
quién las ejecutó, cuándo, con qué contexto. Eso no es logging — es la
|
||
historia del devenir del proyecto, trazable y consultable. Cuando algo falla a
|
||
las 2am, la pregunta "¿qué cambió y quién lo autorizó?" tiene respuesta en el
|
||
grafo de history, no en Slack.
|
||
|
||
Detección de drift. La diferencia entre el estado sellado (lo que declaraste
|
||
que era verdad en t₀) y el estado actual (lo que realmente hay desplegado) es
|
||
medible si y solo si formalizaste el estado sellado. Sin eso, la pregunta "¿ha
|
||
derivado esto?" no tiene respuesta objetiva.
|
||
|
||
---
|
||
Por qué ahora — la convergencia de tres presiones
|
||
|
||
Estos conceptos no son nuevos. Lo nuevo es que tres presiones convergen
|
||
simultáneamente y hacen la ausencia del modelo operacional costosa de una
|
||
forma que antes era tolerable:
|
||
|
||
Presión 1: Los sistemas son demasiado complejos para modelos mentales.
|
||
Un monolito de 2005 podía vivir en la cabeza de dos personas. Un sistema
|
||
cloud-native de 2026 con 40 microservicios, múltiples regiones, pipelines de
|
||
despliegue automatizados y SLOs por servicio no cabe en ninguna cabeza. El
|
||
modelo mental individual ha dejado de ser suficiente como mecanismo de
|
||
coordinación.
|
||
|
||
Presión 2: Los agentes de IA tienen acceso de escritura.
|
||
Hasta hace muy poco, una herramienta de IA que generaba código incorrecto
|
||
producía texto que un humano revisaba antes de ejecutar. Hoy los agentes
|
||
pueden abrir PRs, modificar configuración, ejecutar Terraform, y desplegar. El
|
||
ciclo humano-en-el-loop se está comprimiendo. Un agente que opera sin
|
||
contexto ontológico en ese entorno no es un asistente — es un actor autónomo
|
||
con comprensión incompleta del sistema que modifica.
|
||
|
||
La ontología operacional es el mecanismo por el cual el agente opera sobre lo
|
||
que tú ya clarificaste en lugar de inventar el contexto que le falta.
|
||
|
||
Presión 3: Los equipos son multi-actor y distribuidos.
|
||
Humanos en zonas horarias distintas, agentes de IA con distintos contextos de
|
||
sesión, pipelines de CI ejecutando en paralelo — todos escribiendo sobre el
|
||
mismo sistema sin un coordinador central. Sin un protocolo compartido y
|
||
machine-readable para "qué puede cambiarse, bajo qué condiciones, con qué
|
||
justificación", la coordinación depende de que todo el mundo lea el mismo
|
||
Confluence actualizado. Eso nunca funcionó.
|
||
|
||
---
|
||
El punto de convergencia
|
||
|
||
Lo que la ontología operacional + reflection + DAGs aportan en conjunto es
|
||
algo que ninguna de sus partes aporta sola:
|
||
|
||
Un sistema que sabe lo que es, puede verificar que sigue siendo lo que dice
|
||
ser, y puede comunicarlo a cualquier actor — humano, agente, o CI — de forma
|
||
estructurada y sin ambigüedad.
|
||
|
||
Eso no es documentación. Es un modelo operacional vivo.
|
||
|
||
La ausencia de ese modelo no es un problema de disciplina del equipo — es una
|
||
propiedad emergente de sistemas complejos operados sin representación
|
||
explícita. El drift, la amnesia de decisiones, la ilusión de control en
|
||
infraestructura declarativa — no son fallos de las personas. Son consecuencias
|
||
inevitables de operar un sistema complejo sin un modelo del propio sistema.
|
||
|
||
La ontología operacional es la respuesta a la pregunta: ¿qué estructura mínima
|
||
necesita un sistema para conocerse a sí mismo de forma que ese conocimiento
|
||
pueda ser usado, verificado y compartido?
|
||
|
||
✻ Cooked for 1m 27s
|
||
|
||
※ recap: Explorando la genealogía filosófica y científica de la ontología operacional en software. El siguiente paso es generar el PDF actualizado con las secciones de Taoísmo, DAGs y referencias.
|
||
|
||
❯ quiero incluir las últimas cuestione y respuestas en los docuemntos con las
|
||
referecias que puedes completar al final
|
||
|
||
⏺ Voy a leer el final del documento para hacer la inserción correcta.
|
||
|
||
Read 1 file (ctrl+o to expand)
|
||
|
||
⏺ Ahora hago la edición — inserto las dos nuevas secciones antes de referencias
|
||
y amplío la bibliografía al final.
|
||
|
||
⏺ Update(ontologia-filosofia-software.typ)
|
||
⎿ Added 213 lines, removed 1 line
|
||
566
|
||
567 #pagebreak()
|
||
568
|
||
569 -// ─── 6. REFERENCIAS ────────────────────────────────────────
|
||
-─────────────────
|
||
569 +// ─── 6. FÍSICA CUÁNTICA ────────────────────────────────────
|
||
+─────────────────
|
||
570
|
||
571 += Física cuántica, computación cuántica y ontología operaciona
|
||
+l
|
||
572 +
|
||
573 +== El golpe más profundo — Aristóteles estaba equivocado en el
|
||
+ nivel fundamental
|
||
574 +
|
||
575 +La ontología aristotélica asume que las sustancias tienen prop
|
||
+iedades definidas. La mecánica cuántica demuestra que, en el n
|
||
+ivel fundamental, las propiedades no son definidas hasta que s
|
||
+e miden. Un electrón no *tiene* posición — la posición emerge
|
||
+del acto de medición.
|
||
576 +
|
||
577 +Esto no es ignorancia del observador sobre una propiedad preex
|
||
+istente. El *teorema de Kochen-Specker* (1967) lo prueba forma
|
||
+lmente: es imposible asignar valores definidos a todos los obs
|
||
+ervables cuánticos simultáneamente, incluso antes de la medici
|
||
+ón. La indeterminación es *ontológica*, no epistémica. El suel
|
||
+o sobre el que se construyeron 2.300 años de ontología occiden
|
||
+tal se mueve.
|
||
578 +
|
||
579 +== Las tres conexiones genuinas
|
||
580 +
|
||
581 +=== Complementariedad de Bohr ↔ Yin-Yang y la dualidad Ontolog
|
||
+ía/Reflection
|
||
582 +
|
||
583 +Niels Bohr (1885-1962) formuló el *principio de complementarie
|
||
+dad*: onda y partícula son dos descripciones mutuamente excluy
|
||
+entes pero igualmente necesarias del mismo fenómeno. No puedes
|
||
+ observar ambas simultáneamente — el aparato de medición deter
|
||
+mina qué aspecto revelas.
|
||
584 +
|
||
585 +Bohr lo conectó explícitamente con el Taoísmo: cuando fue enno
|
||
+blecido en 1947 adoptó el símbolo yin-yang como parte de su es
|
||
+cudo de armas con la inscripción _Contraria sunt complementa_
|
||
+— los contrarios son complementarios.
|
||
586 +
|
||
587 +La dualidad ontología/reflection del modelo operacional tiene
|
||
+la misma estructura. El "aparato de medición" — qué preguntas
|
||
+haces al sistema — determina qué aspecto revelas. La capa que
|
||
+uses (core.ncl o los modos de reflection) determina qué ves. N
|
||
+inguna es más verdadera — son complementarias.
|
||
588 +
|
||
589 +=== Contextualidad cuántica ↔ Ontología perspectival
|
||
590 +
|
||
591 +El teorema de Kochen-Specker prueba algo más radical que la in
|
||
+certidumbre de Heisenberg: el resultado de medir un observable
|
||
+ cuántico depende de *qué otros observables se miden simultáne
|
||
+amente*. Las propiedades son *contextuales* — no existen indep
|
||
+endientemente del contexto de medición.
|
||
592 +
|
||
593 +Esto convierte en hecho físico lo que tres tradiciones de esta
|
||
+ discusión habían sostenido filosóficamente:
|
||
594 +
|
||
595 +- *Zhuangzi*: toda distinción ontológica es perspectival
|
||
596 +- *Wittgenstein tardío*: el significado depende del juego de l
|
||
+enguaje
|
||
597 +- *Gruber*: una ontología es una especificación de una concept
|
||
+ualización, no una captura de la realidad
|
||
598 +
|
||
599 +Para la ontología operacional: el "estado" de un proyecto es s
|
||
+iempre relativo al actor y al contexto de consulta. Un agente
|
||
+de IA y un desarrollador humano consultando el mismo core.ncl
|
||
+están haciendo mediciones con aparatos distintos. Lo que ven e
|
||
+s complementario, no idéntico.
|
||
600 +
|
||
601 +=== El problema del observador ↔ El trasfondo que no puede for
|
||
+malizarse
|
||
602 +
|
||
603 +En mecánica cuántica, la medición colapsa la función de onda —
|
||
+ el observador es parte del sistema. No hay _view from nowhere
|
||
+_ (Nagel, 1986). Todo conocimiento es conocimiento *desde* una
|
||
+ posición.
|
||
604 +
|
||
605 +Esto es exactamente lo que Heidegger llamó el trasfondo pre-te
|
||
+mático — la condición de posibilidad de cualquier formalizació
|
||
+n que ella misma no puede ser formalizada. Y lo que el _Tao Te
|
||
+ Ching_ afirma: el Tao que puede nombrarse no es el Tao eterno
|
||
+.
|
||
606 +
|
||
607 +La ontología operacional que crees que describes objetivamente
|
||
+ está siendo constituida por el acto de escribirla. Esto no es
|
||
+ un defecto del modelo — es un límite estructural de toda repr
|
||
+esentación.
|
||
608 +
|
||
609 +== La interpretación más relevante — Mecánica Cuántica Relacio
|
||
+nal
|
||
610 +
|
||
611 +Carlo Rovelli propuso en 1996 (_Relational Quantum Mechanics_,
|
||
+ International Journal of Theoretical Physics) que no existen
|
||
+estados absolutos — solo estados *relativos a otros sistemas*.
|
||
+ El estado de una partícula no es una propiedad intrínseca — e
|
||
+s una propiedad relacional respecto al sistema con el que inte
|
||
+ractúa.
|
||
612 +
|
||
613 +Esto es la ontología más radical posible y conecta directament
|
||
+e con Ladyman y Ross (realismo estructural): no hay propiedade
|
||
+s, solo relaciones. Lo real son las estructuras relacionales,
|
||
+no las entidades.
|
||
614 +
|
||
615 +Para el modelo operacional: el "estado" de un proyecto (curren
|
||
+t_state en state.ncl) no es una propiedad intrínseca del proye
|
||
+cto — es relacional respecto al actor que consulta, los objeti
|
||
+vos perseguidos, el momento del ciclo de vida. Dos actores con
|
||
+ marcos de referencia distintos pueden tener mediciones del es
|
||
+tado coherentes pero distintas. No hay contradicción — hay con
|
||
+textualidad relacional.
|
||
616 +
|
||
617 +== La computación cuántica — honestidad sobre sus límites
|
||
618 +
|
||
619 +#table(
|
||
620 + columns: (1.5fr, 2fr, 2fr),
|
||
621 + inset: 7pt,
|
||
622 + fill: (col, row) => if row == 0 { rgb("#c04000") } else if c
|
||
+alc.odd(row) { rgb("#fdf6f0") } else { white },
|
||
623 + table.header(
|
||
624 + text(fill: white, weight: "bold")[Aspecto],
|
||
625 + text(fill: white, weight: "bold")[Situación real (2026)],
|
||
626 + text(fill: white, weight: "bold")[Relevancia para ontologí
|
||
+a operacional],
|
||
627 + ),
|
||
628 + [Tamaño de grafos],
|
||
629 + [La ventaja cuántica aparece a escala masiva],
|
||
630 + [Los grafos de ontología de proyecto son pequeños — sin vent
|
||
+aja cuántica],
|
||
631 +
|
||
632 + [Algoritmos relevantes],
|
||
633 + [Grover: O(√N) búsqueda. Shor: factorización polinómica],
|
||
634 + [No mapean a consultas típicas sobre ontologías de proyecto]
|
||
+,
|
||
635 +
|
||
636 + [Decoherencia],
|
||
637 + [Cualquier interacción colapsa la superposición],
|
||
638 + [El uso práctico requiere aislamiento que contradice operaci
|
||
+ón continua],
|
||
639 +
|
||
640 + [Redes semánticas cuánticas],
|
||
641 + [Investigación activa — relaciones con amplitudes de probabi
|
||
+lidad],
|
||
642 + [Captura gradualidad que OWL binario pierde — relevante a me
|
||
+diano plazo],
|
||
643 +
|
||
644 + [Bayesian networks cuánticas],
|
||
645 + [Extensión de Pearl con amplitudes complejas],
|
||
646 + [Modelar dependencias con comportamiento emergente no reduci
|
||
+ble],
|
||
647 +
|
||
648 + [LLMs y espacios de Hilbert],
|
||
649 + [Los embeddings son productos internos en espacio vectorial
|
||
+de alta dimensión],
|
||
650 + [Directamente relevante: la misma matemática cuántica, aplic
|
||
+ada a semántica],
|
||
651 +)
|
||
652 +
|
||
653 +== La conexión no obvia — LLMs como geometría cuántica aplicad
|
||
+a
|
||
654 +
|
||
655 +Los Large Language Models operan en espacios vectoriales de al
|
||
+ta dimensión donde el significado es relacional y contextual.
|
||
+No es metáfora cuántica — es la misma matemática de espacios d
|
||
+e Hilbert que usa la mecánica cuántica, aplicada a representac
|
||
+ión semántica.
|
||
656 +
|
||
657 +La ontología operacional (core.ncl, invariantes, tensiones) es
|
||
+, en este contexto, una *base* en ese espacio — un conjunto de
|
||
+ vectores que fijan el marco de referencia en el que el agente
|
||
+ opera. Inyectar el contexto ontológico al inicio de una sesió
|
||
+n es, en la geometría de estos modelos, fijar el marco de refe
|
||
+rencia antes de que el agente empiece a computar.
|
||
658 +
|
||
659 +La física cuántica importa aquí no porque vayamos a correr ont
|
||
+ologías en computadores cuánticos — sino porque demuestra que
|
||
+las asunciones ontológicas clásicas (propiedades definidas, es
|
||
+tados absolutos, observador separado del sistema) son físicame
|
||
+nte incorrectas en el nivel fundamental. La ontología operacio
|
||
+nal es contextual, relacional y perspectival *por diseño corre
|
||
+cto*, no por limitación.
|
||
660 +
|
||
661 +#pagebreak()
|
||
662 +
|
||
663 +// ─── 7. RELEVANCIA EN SOFTWARE E INFRA ─────────────────────
|
||
+─────────────────
|
||
664 +
|
||
665 += Por qué es relevante en software e infraestructuras digitale
|
||
+s
|
||
666 +
|
||
667 +== El problema real no es técnico — es epistémico
|
||
668 +
|
||
669 +El software moderno tiene un déficit estructural que no se res
|
||
+uelve con mejores herramientas:
|
||
670 +
|
||
671 +#align(center)[
|
||
672 + #block(
|
||
673 + fill: rgb("#1a1a1a"),
|
||
674 + radius: 4pt,
|
||
675 + inset: 12pt,
|
||
676 + width: 90%,
|
||
677 + )[
|
||
678 + #set text(font: "New Computer Modern Mono", size: 9pt, fil
|
||
+l: rgb("#cccccc"))
|
||
679 + Lo que el sistema hace ≠ Lo que el equipo cree
|
||
+que hace \
|
||
680 + Lo que la infra tiene desplegado ≠ Lo que Terraform decla
|
||
+ra \
|
||
681 + Lo que el ADR decidió ≠ Lo que el código imple
|
||
+menta \
|
||
682 + Lo que el agente asume ≠ Lo que el contexto rea
|
||
+l requiere
|
||
683 + ]
|
||
684 +]
|
||
685 +
|
||
686 +Cada una de esas brechas es silenciosa, acumulativa, y solo se
|
||
+ descubre cuando falla en producción. No son fallos de las per
|
||
+sonas — son consecuencias inevitables de operar un sistema com
|
||
+plejo sin un modelo del propio sistema.
|
||
687 +
|
||
688 +== Lo que la ontología operacional hace que nada más hace
|
||
689 +
|
||
690 +#table(
|
||
691 + columns: (1.5fr, 1.5fr),
|
||
692 + inset: 7pt,
|
||
693 + fill: (col, row) => if row == 0 { rgb("#c04000") } else if c
|
||
+alc.odd(row) { rgb("#fdf6f0") } else { white },
|
||
694 + table.header(
|
||
695 + text(fill: white, weight: "bold")[Documentación tradiciona
|
||
+l],
|
||
696 + text(fill: white, weight: "bold")[Ontología operacional],
|
||
697 + ),
|
||
698 + [Prosa — no consultable],
|
||
699 + [Grafo tipado — consultable con queries estructuradas],
|
||
700 +
|
||
701 + [Estática — se desactualiza sin señal],
|
||
702 + [Verificada en cada commit mediante typecheck],
|
||
703 +
|
||
704 + [Describe lo que hubo],
|
||
705 + [Formaliza lo que ES y lo que debe ser],
|
||
706 +
|
||
707 + [Solo legible por humanos],
|
||
708 + [Legible por humanos, agentes de IA y pipelines de CI],
|
||
709 +
|
||
710 + [Captura el qué],
|
||
711 + [Captura el qué, el por qué, y lo que no puede cambiar],
|
||
712 +
|
||
713 + [Nadie la actualiza bajo presión],
|
||
714 + [El proceso la actualiza — es el path, no documentación para
|
||
+lela],
|
||
715 +)
|
||
716 +
|
||
717 +*Formaliza lo que no puede romperse.* Los invariantes no son c
|
||
+omentarios — son constraints tipadas que el sistema verifica a
|
||
+ntes del runtime, no después.
|
||
718 +
|
||
719 +*Captura las tensiones activas.* "Coste vs. disponibilidad", "
|
||
+velocidad de despliegue vs. estabilidad" viven en la ontología
|
||
+, no en la cabeza del miembro más veterano del equipo. Cuando
|
||
+ese alguien se va, los trade-offs permanecen.
|
||
720 +
|
||
721 +*Da al agente de IA el contexto que no puede inferir del códig
|
||
+o.* Un agente puede leer todo el código de un sistema y no sab
|
||
+er que hay un acuerdo que impide escalar horizontalmente ciert
|
||
+o servicio, o que la decisión de usar gRPC interno fue consecu
|
||
+encia de una tensión específica de latencia que no está en nin
|
||
+gún archivo. La ontología operacional hace eso explícito y mac
|
||
+hine-readable.
|
||
722 +
|
||
723 +== Por qué los DAGs — especificidad técnica
|
||
724 +
|
||
725 +Los DAGs no son una elección estética. Son la única estructura
|
||
+ que garantiza cuatro propiedades simultáneamente en sistemas
|
||
+operacionales:
|
||
726 +
|
||
727 +*Análisis de impacto decidible.* Antes de cambiar un invariant
|
||
+e o un nodo de infra — recorre el DAG y sabes exactamente qué
|
||
+se ve afectado. Concreto: en Terraform, el grafo de recursos e
|
||
+s un DAG. `terraform plan` recorre ese grafo para determinar q
|
||
+ué debe crearse, modificarse o destruirse en qué orden. Si hub
|
||
+iera ciclos, el plan sería indecidible.
|
||
728 +
|
||
729 +*Orden topológico para ejecución fiable.* Cualquier operación
|
||
+con dependencias — despliegue, migración, rollback, onboarding
|
||
+ — tiene un orden correcto. El DAG lo da sin necesidad de un c
|
||
+oordinador central. Este es el principio detrás de Make (1976)
|
||
+, Bazel, Gradle, y cualquier build system no trivial.
|
||
730 +
|
||
731 +*Justificación sin circularidad.* Si el invariante A existe po
|
||
+rque la práctica B lo requiere, y la práctica B existe porque
|
||
+el invariante A lo define — tienes dogma, no arquitectura. El
|
||
+DAG hace esa circularidad visible e inaceptable.
|
||
732 +
|
||
733 +*Rollback determinista.* El inverso topológico del DAG es siem
|
||
+pre computable. Sin DAG, el rollback es un proceso manual que
|
||
+depende de que alguien recuerde el orden correcto.
|
||
734 +
|
||
735 +== Por qué la reflection — la ontología sin operación es un mu
|
||
+seo
|
||
736 +
|
||
737 +La ontología captura el *ser*. Pero los sistemas de software n
|
||
+o solo son — *operan*. La reflection es la capa que hace la on
|
||
+tología ejecutable:
|
||
738 +
|
||
739 +*Modos como DAGs operacionales.* Un procedimiento sin DAG es u
|
||
+na lista de pasos que alguien puede ejecutar en cualquier orde
|
||
+n, saltar, o ignorar. Un modo como DAG tiene dependencias expl
|
||
+ícitas — el sistema puede verificar que se ejecutó correctamen
|
||
+te antes de avanzar.
|
||
740 +
|
||
741 +*ADRs con constraints tipadas.* Una decisión sin constraints e
|
||
+s prosa. Con constraints tipadas es un contrato que el CI pued
|
||
+e verificar en cada commit. La pregunta "¿estamos violando alg
|
||
+una decisión arquitectural?" pasa de ser reflexión manual a se
|
||
+r comprobación automática.
|
||
742 +
|
||
743 +*Detección de drift.* La diferencia entre el estado sellado (l
|
||
+o que declaraste que era verdad) y el estado actual (lo que re
|
||
+almente hay desplegado) es medible si y solo si formalizaste e
|
||
+l estado sellado. Sin eso, la pregunta "¿ha derivado esto?" no
|
||
+ tiene respuesta objetiva.
|
||
744 +
|
||
745 +== Las tres presiones que hacen esto urgente ahora
|
||
746 +
|
||
747 +Estos conceptos no son nuevos. Lo nuevo es que tres presiones
|
||
+convergen simultáneamente haciendo que la ausencia del modelo
|
||
+operacional sea costosa de una forma que antes era tolerable:
|
||
748 +
|
||
749 +*Presión 1: Los sistemas superan la capacidad de comprensión i
|
||
+ndividual.* Un monolito de 2005 podía vivir en la cabeza de do
|
||
+s personas. Un sistema cloud-native de 2026 con decenas de mic
|
||
+roservicios, múltiples regiones, pipelines automatizados y SLO
|
||
+s por servicio no cabe en ninguna cabeza. El modelo mental ind
|
||
+ividual ha dejado de ser suficiente como mecanismo de coordina
|
||
+ción.
|
||
750 +
|
||
751 +*Presión 2: Los agentes de IA tienen acceso de escritura.* Has
|
||
+ta hace poco, una herramienta de IA que generaba código incorr
|
||
+ecto producía texto que un humano revisaba antes de ejecutar.
|
||
+Hoy los agentes pueden abrir PRs, modificar configuración, eje
|
||
+cutar Terraform, y desplegar. El ciclo humano-en-el-loop se co
|
||
+mprime. Un agente sin contexto ontológico en ese entorno no es
|
||
+ un asistente — es un actor autónomo con comprensión incomplet
|
||
+a del sistema que modifica.
|
||
752 +
|
||
753 +*Presión 3: Los equipos son multi-actor y distribuidos.* Human
|
||
+os en zonas horarias distintas, agentes de IA con distintos co
|
||
+ntextos de sesión, pipelines de CI ejecutando en paralelo — to
|
||
+dos escribiendo sobre el mismo sistema sin coordinador central
|
||
+. Sin un protocolo compartido y machine-readable para "qué pue
|
||
+de cambiarse, bajo qué condiciones, con qué justificación", la
|
||
+ coordinación depende de que todo el mundo lea el mismo Conflu
|
||
+ence actualizado. Eso nunca funcionó.
|
||
754 +
|
||
755 +== La síntesis
|
||
756 +
|
||
757 +Lo que la ontología operacional, reflection y DAGs aportan en
|
||
+conjunto es algo que ninguna de sus partes aporta sola:
|
||
758 +
|
||
759 +#align(center)[
|
||
760 + #block(
|
||
761 + stroke: rgb("#c04000") + 1pt,
|
||
762 + radius: 4pt,
|
||
763 + inset: 14pt,
|
||
764 + width: 88%,
|
||
765 + )[
|
||
766 + #set text(size: 11pt)
|
||
767 + Un sistema que sabe lo que es, puede verificar que sigue s
|
||
+iendo \
|
||
768 + lo que dice ser, y puede comunicarlo a cualquier actor — h
|
||
+umano, \
|
||
769 + agente o CI — de forma estructurada y sin ambigüedad.
|
||
770 + ]
|
||
771 +]
|
||
772 +
|
||
773 +Eso no es documentación. Es un modelo operacional vivo.
|
||
774 +
|
||
775 +La ausencia de ese modelo no es un problema de disciplina del
|
||
+equipo. Es una propiedad emergente de sistemas complejos opera
|
||
+dos sin representación explícita. El drift, la amnesia de deci
|
||
+siones, la ilusión de control en infraestructura declarativa —
|
||
+ no son fallos de las personas. Son consecuencias inevitables.
|
||
776 +
|
||
777 +La ontología operacional es la respuesta a la pregunta: *¿qué
|
||
+estructura mínima necesita un sistema para conocerse a sí mism
|
||
+o de forma que ese conocimiento pueda ser usado, verificado y
|
||
+compartido?*
|
||
778 +
|
||
779 +#pagebreak()
|
||
780 +
|
||
781 +// ─── 8. REFERENCIAS ────────────────────────────────────────
|
||
+─────────────────
|
||
782 +
|
||
783 = Referencias y lecturas recomendadas
|
||
784
|
||
785 == Filosofía clásica y ontología
|
||
|
||
⏺ Ahora añado las referencias de física cuántica e ingeniería de software al
|
||
final de la bibliografía.
|
||
|
||
⏺ Update(ontologia-filosofia-software.typ)
|
||
⎿ Added 68 lines
|
||
892 #text(fill: rgb("#666666"), size: 9.5pt)[La diferencia que hac
|
||
e una diferencia. Epistemología sistémica que conecta Taoísmo,
|
||
cibernética y representación del conocimiento. Perspectiva po
|
||
co citada en CS pero fundamentalmente relevante.]
|
||
893
|
||
894 *Winograd, T. & Flores, F.* _Understanding Computers and Cogni
|
||
tion_. Norwood: Ablex, 1986. \
|
||
895 +#text(fill: rgb("#666666"), size: 9.5pt)[La crítica más influy
|
||
+ente a la IA simbólica desde Heidegger. Argumenta que el trasf
|
||
+ondo de comprensión no puede formalizarse — límite estructural
|
||
+ de toda ontología operacional.]
|
||
896 +
|
||
897 +== Física cuántica y fundamentos
|
||
898 +
|
||
899 +*Bohr, N.* "Can Quantum-Mechanical Description of Physical Rea
|
||
+lity Be Considered Complete?" _Physical Review_, 48, 696-702,
|
||
+1935. \
|
||
900 +#text(fill: rgb("#666666"), size: 9.5pt)[La respuesta de Bohr
|
||
+al artículo EPR de Einstein-Podolsky-Rosen. Formula el princip
|
||
+io de complementariedad como posición filosófica irrenunciable
|
||
+.]
|
||
901 +
|
||
902 +*Bohr, N.* "Discussion with Einstein on Epistemological Proble
|
||
+ms in Atomic Physics." En Schilpp (ed.), _Albert Einstein: Phi
|
||
+losopher-Scientist_. Evanston: Library of Living Philosophers,
|
||
+ 1949. \
|
||
903 +#text(fill: rgb("#666666"), size: 9.5pt)[El debate más importa
|
||
+nte de la física del siglo XX sobre interpretación cuántica. B
|
||
+ohr y Einstein representan dos ontologías irreconciliables.]
|
||
904 +
|
||
905 +*Heisenberg, W.* _Physics and Philosophy: The Revolution in Mo
|
||
+dern Science_. Nueva York: Harper & Row, 1958. \
|
||
906 +#text(fill: rgb("#666666"), size: 9.5pt)[La reflexión filosófi
|
||
+ca más accesible de uno de los fundadores. El capítulo sobre e
|
||
+l papel del lenguaje en física cuántica conecta directamente c
|
||
+on Wittgenstein.]
|
||
907 +
|
||
908 +*Schrödinger, E.* "Die gegenwärtige Situation in der Quantenme
|
||
+chanik." _Naturwissenschaften_, 23(48-49-50), 1935. \
|
||
909 +#text(fill: rgb("#666666"), size: 9.5pt)[El artículo del gato.
|
||
+ Introduce el concepto de entrelazamiento (_Verschränkung_) y
|
||
+demuestra que la superposición cuántica no puede interpretarse
|
||
+ clásicamente.]
|
||
910 +
|
||
911 +*Kochen, S. & Specker, E.P.* "The Problem of Hidden Variables
|
||
+in Quantum Mechanics." _Journal of Mathematics and Mechanics_,
|
||
+ 17(1), 59-87, 1967. \
|
||
912 +#text(fill: rgb("#666666"), size: 9.5pt)[Prueba formal de que
|
||
+es imposible asignar valores definidos a todos los observables
|
||
+ cuánticos simultáneamente. La contextualidad como hecho matem
|
||
+ático, no filosófico.]
|
||
913 +
|
||
914 +*Bell, J.S.* _Speakable and Unspeakable in Quantum Mechanics_.
|
||
+ Cambridge: Cambridge University Press, 1987. \
|
||
915 +#text(fill: rgb("#666666"), size: 9.5pt)[Colección de ensayos
|
||
+del autor del teorema de Bell (1964). El capítulo "Against mea
|
||
+surement" es una crítica filosófica fundamental al vocabulario
|
||
+ de la física cuántica.]
|
||
916 +
|
||
917 +*Aspect, A., Grangier, P. & Roger, G.* "Experimental Realizati
|
||
+on of Einstein-Podolsky-Rosen-Bohm Gedankenexperiment." _Physi
|
||
+cal Review Letters_, 49(2), 91-94, 1982. \
|
||
918 +#text(fill: rgb("#666666"), size: 9.5pt)[La confirmación exper
|
||
+imental de que las desigualdades de Bell se violan. Prueba que
|
||
+ la naturaleza es no-local — no hay variables ocultas locales.
|
||
+]
|
||
919 +
|
||
920 +*Everett, H.* "Relative State Formulation of Quantum Mechanics
|
||
+." _Reviews of Modern Physics_, 29(3), 454-462, 1957. \
|
||
921 +#text(fill: rgb("#666666"), size: 9.5pt)[La interpretación de
|
||
+muchos mundos. Relevante porque ofrece una ontología donde tod
|
||
+os los estados posibles son reales — el antípoda de la ontolog
|
||
+ía operacional que colapsa posibilidades en decisiones.]
|
||
922 +
|
||
923 +*Rovelli, C.* "Relational Quantum Mechanics." _International J
|
||
+ournal of Theoretical Physics_, 35(8), 1637-1678, 1996. \
|
||
924 +#text(fill: rgb("#666666"), size: 9.5pt)[No existen estados ab
|
||
+solutos — solo estados relativos a otros sistemas. La ontologí
|
||
+a más radical de la lista y la más relevante para entender por
|
||
+ qué el estado de un proyecto es siempre relacional.]
|
||
925 +
|
||
926 +*Rovelli, C.* _Helgoland_. Milano: Adelphi, 2020. \
|
||
927 +#text(fill: rgb("#666666"), size: 9.5pt)[La versión divulgativ
|
||
+a de la mecánica cuántica relacional. Accesible y filosóficame
|
||
+nte riguroso. El capítulo sobre relaciones y el budismo es rel
|
||
+evante para la conexión con el Taoísmo.]
|
||
928 +
|
||
929 +*Nagel, T.* _The View from Nowhere_. Oxford: Oxford University
|
||
+ Press, 1986. \
|
||
930 +#text(fill: rgb("#666666"), size: 9.5pt)[El argumento de que t
|
||
+oda objetividad requiere un punto de vista. En tensión directa
|
||
+ con el problema del observador cuántico y la ontología perspe
|
||
+ctival de Zhuangzi.]
|
||
931 +
|
||
932 +*Nielsen, M.A. & Chuang, I.L.* _Quantum Computation and Quantu
|
||
+m Information_. Cambridge: Cambridge University Press, 2000. \
|
||
933 +#text(fill: rgb("#666666"), size: 9.5pt)[El texto estándar de
|
||
+computación cuántica. Los capítulos 2-3 sobre el formalismo ma
|
||
+temático (espacios de Hilbert, operadores, entrelazamiento) so
|
||
+n la base para entender la conexión con LLMs.]
|
||
934 +
|
||
935 +*Deutsch, D.* _The Fabric of Reality_. Londres: Allen Lane, 19
|
||
+97. \
|
||
936 +#text(fill: rgb("#666666"), size: 9.5pt)[La defensa más ambici
|
||
+osa de la interpretación de muchos mundos. El capítulo sobre e
|
||
+pistemología cuántica conecta con la cuestión de qué puede con
|
||
+ocerse sobre un sistema complejo.]
|
||
937 +
|
||
938 +== Ingeniería de software e infraestructura
|
||
939 +
|
||
940 +*Evans, E.* _Domain-Driven Design: Tackling Complexity in the
|
||
+Heart of Software_. Boston: Addison-Wesley, 2003. \
|
||
941 +#text(fill: rgb("#666666"), size: 9.5pt)[El lenguaje ubicuo co
|
||
+mo ontología operacional informal. El bounded context es estru
|
||
+cturalmente equivalente a una ontología regional de Husserl ap
|
||
+licada a dominios de negocio.]
|
||
942 +
|
||
943 +*Kleppmann, M.* _Designing Data-Intensive Applications_. Sebas
|
||
+topol: O'Reilly, 2017. \
|
||
944 +#text(fill: rgb("#666666"), size: 9.5pt)[El capítulo sobre mod
|
||
+elos de datos es el más relevante: la elección de modelo (rela
|
||
+cional, documental, grafo) es una decisión ontológica — define
|
||
+ qué relaciones pueden existir.]
|
||
945 +
|
||
946 +*Morris, K.* _Infrastructure as Code_. Sebastopol: O'Reilly, 2
|
||
+016. \
|
||
947 +#text(fill: rgb("#666666"), size: 9.5pt)[Formaliza la declarat
|
||
+ividad en infraestructura. El capítulo sobre principios hace e
|
||
+xplícita la distinción entre estado deseado y estado actual —
|
||
+el núcleo del modelo state.ncl.]
|
||
948 +
|
||
949 +*Humble, J. & Farley, D.* _Continuous Delivery_. Boston: Addis
|
||
+on-Wesley, 2010. \
|
||
950 +#text(fill: rgb("#666666"), size: 9.5pt)[El pipeline de despli
|
||
+egue como DAG de verificaciones. La idea de que cada etapa del
|
||
+ pipeline es un gate que el sistema debe cruzar formalmente.]
|
||
951 +
|
||
952 +*Kim, G., Humble, J., Debois, P. & Willis, J.* _The DevOps Han
|
||
+dbook_. Portland: IT Revolution Press, 2016. \
|
||
953 +#text(fill: rgb("#666666"), size: 9.5pt)[El flujo de trabajo D
|
||
+evOps como protocolo operacional. La sección sobre feedback lo
|
||
+ops es estructuralmente equivalente al ciclo ontología/reflect
|
||
+ion.]
|
||
954 +
|
||
955 +*Dehghani, Z.* "How to Move Beyond a Monolithic Data Lake to a
|
||
+ Distributed Data Mesh." Martin Fowler Blog, 2019. \
|
||
956 +#text(fill: rgb("#666666"), size: 9.5pt)[Data mesh como ontolo
|
||
+gía operacional distribuida para datos. Cada dominio es respon
|
||
+sable de su propia ontología de datos — la aplicación más cerc
|
||
+ana al modelo ontoref en infraestructura de datos.]
|
||
957 +
|
||
958 +*Fowler, M.* "Who Needs an Architect?" _IEEE Software_, 20(5),
|
||
+ 11-13, 2003. \
|
||
959 +#text(fill: rgb("#666666"), size: 9.5pt)[Define arquitectura c
|
||
+omo "las decisiones que son difíciles de cambiar" — equivalent
|
||
+e exacto de los invariantes en ontología operacional.]
|
||
960 +
|
||
961 +*Richardson, C.* _Microservices Patterns_. Shelter Island: Man
|
||
+ning, 2018. \
|
||
962 +#text(fill: rgb("#666666"), size: 9.5pt)[El patrón Saga como D
|
||
+AG de transacciones distribuidas. Cada paso del saga tiene dep
|
||
+ends_on implícito — el DAG operacional aplicado a consistencia
|
||
+ eventual.]
|
||
963 #text(fill: rgb("#666666"), size: 9.5pt)[La crítica más influy
|
||
ente a la IA simbólica desde Heidegger. Argumenta que el trasf
|
||
ondo de comprensión no puede formalizarse — límite de toda ont
|
||
ología operacional.]
|
||
⏺ Bash(typst compile ontologia-filosofia-software.typ
|
||
ontologia-filosofia-software.pdf 2>&1)
|
||
⎿ warning: unknown font family: new computer modern mono
|
||
┌─ ontologia-filosofia-software.typ:678:20
|
||
│
|
||
… +3 lines (ctrl+o to expand)
|
||
|
||
⏺ Update(ontologia-filosofia-software.typ)
|
||
⎿ Added 1 line, removed 1 line
|
||
675 inset: 12pt,
|
||
676 width: 90%,
|
||
677 )[
|
||
678 - #set text(font: "New Computer Modern Mono", size: 9pt, fil
|
||
-l: rgb("#cccccc"))
|
||
678 + #set text(font: "Courier New", size: 9pt, fill: rgb("#cccc
|
||
+cc"))
|
||
679 Lo que el sistema hace ≠ Lo que el equipo cree
|
||
que hace \
|
||
680 Lo que la infra tiene desplegado ≠ Lo que Terraform decla
|
||
ra \
|
||
681 Lo que el ADR decidió ≠ Lo que el código imple
|
||
menta \
|
||
|
||
⏺ Bash(typst compile ontologia-filosofia-software.typ
|
||
ontologia-filosofia-software.pdf 2>&1 && echo "OK" && ls -lh
|
||
ontologia-filosofia-software.pdf && echo "pages: $(p…)
|
||
⎿ OK
|
||
-rw-r--r--@ 1 jesusperezlorenzo admin 440K Apr 24 23:47 ontologia-f
|
||
ilosofia-software.pdf
|
||
pages: 28
|
||
|
||
⏺ PDF actualizado — 28 páginas, 440K.
|
||
|
||
Lo que se añadió:
|
||
|
||
Sección 6 — Física cuántica y ontología operacional
|
||
- El teorema de Kochen-Specker como prueba formal de que Aristóteles falla en
|
||
el nivel fundamental
|
||
- Tres conexiones genuinas: complementariedad de Bohr ↔ yin-yang/dualidad
|
||
ontología-reflection; contextualidad cuántica ↔ perspectivismo (Zhuangzi,
|
||
Wittgenstein, Gruber); problema del observador ↔ trasfondo pre-temático
|
||
- Mecánica Cuántica Relacional de Rovelli — estados sin propiedades absolutas,
|
||
solo relacionales
|
||
- Tabla honesta sobre computación cuántica: dónde aplica y dónde no
|
||
- La conexión LLMs/espacios de Hilbert — la misma matemática cuántica aplicada
|
||
a semántica
|
||
|
||
Sección 7 — Relevancia en software e infraestructuras
|
||
- Las cuatro brechas epistémicas sistémicas (sistema vs. creencia del equipo,
|
||
infra vs. Terraform, ADR vs. código, agente vs. contexto real)
|
||
- Tabla documentación tradicional vs. ontología operacional
|
||
- Por qué los DAGs técnicamente: impacto decidible, orden topológico,
|
||
justificación sin circularidad, rollback determinista
|
||
- Por qué la reflection: modos ejecutables, ADR constraints en CI, drift
|
||
detection
|
||
- Las tres presiones convergentes: complejidad supera comprensión individual,
|
||
agentes con acceso de escritura, equipos multi-actor distribuidos
|
||
|
||
Referencias ampliadas — 14 nuevas entradas:
|
||
- Física cuántica: Bohr (×2), Heisenberg, Schrödinger, Kochen-Specker, Bell,
|
||
Aspect, Everett, Rovelli (×2), Nagel, Nielsen/Chuang, Deutsch
|
||
- Ingeniería: Evans (DDD), Kleppmann, Morris (IaC), Humble/Farley, Kim et al.
|
||
(DevOps), Dehghani (data mesh), Fowler, Richardson
|
||
|
||
✻ Worked for 3m 43s |