4668 lines
292 KiB
Text
4668 lines
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
|