Parte V · En la práctica
Música, química, fútbol, contratos
Un modelo que solo se prueba en lo cómodo no se ha probado. Aquí lo llevamos a cuatro mundos que no se parecen entre sí ni se parecen a un negocio: una partitura, una llama, una cancha y un contrato. Cada uno empuja un eje distinto hasta que cruje. Veremos dónde cede con elegancia y dónde deja una grieta anotada.
En una sala de ensayo, a las once de la mañana, una pianista repite por séptima vez los primeros nueve compases de una sonata. La obra que toca se escribió hace más de dos siglos y no le pertenece a nadie. El sonido que llena la sala existe solo ahora, sale de sus manos y se apagará en segundos.
A trescientos kilómetros, en un banco de pruebas, un inyector descarga una bocanada de metano que se enciende sin que nadie la encienda. No hay autor, solo condiciones que se cumplieron.
Esa misma tarde, en un estadio, veintidós personas corren a la vez, y de toda esa simultaneidad un sistema tendrá que conservar apenas lo que importa.
Y en una notaría, un papel firmado dispone qué está permitido y qué no durante los próximos doce meses. Mucho antes de que ocurra ninguno de los hechos que regula.
Cuatro escenas, cuatro mundos. Ninguno es una venta, una historia clínica ni un expediente. Y aun así pretendemos describirlos con las mismas siete preguntas.
Si el modelo es lo que dice ser, un sistema de coordenadas universal, tiene que aguantar aquí. Este capítulo lo somete a los cuatro a propósito, buscando la grieta.
Por qué los dominios incómodos
Hasta aquí, la Parte V recorrió ocho dominios industriales (del spa al banco, de la universidad a la mina) y el modelo aguantó con poca fricción.
Eso es alentador y también sospechoso. Todos esos dominios, por exigentes que fueran, compartían un aire de familia. Son comerciales, clínicos o administrativos. Tienen personas que deciden, transacciones que se registran, fechas que se anotan.
Un modelo puede encajar bien en ocho variantes de la misma forma y romperse en la novena.
Por eso elegimos cuatro dominios de otra naturaleza, cada uno porque tensa una parte distinta del modelo hasta el punto de rotura.
No buscamos modelarlos en profundidad; eso ya lo hicimos con los ocho industriales. Buscamos de cada mundo su fricción más característica, ponerla bajo la lupa y ver qué pasa.
Es la estrategia del ingeniero de estructuras que no admira el puente terminado, sino que lo carga con camiones hasta oír dónde rechina.
Los cuatro ejes de estrés
Cada dominio empuja una zona distinta de la arquitectura:
Conviene adelantar la conclusión para leer sin suspenso falso: el esqueleto no se quiebra en ninguno de los cuatro.
Algunos casos se resuelven con limpieza. Otros piden un rol de dominio que amplía el catálogo. Unos pocos dejan un pendiente señalado.
Ese balance (mucha cobertura, pocas grietas y todas conocidas) es lo que distingue una propuesta probada de una promesa.
Música: cuando la categoría se vuelve un árbol
Empecemos por la sala de ensayo. Vamos a modelar una composición musical (la Sonata para piano n.º 14, «Claro de luna», op. 27 n.º 2, de Beethoven) junto con una interpretación concreta: la que da la pianista Hélène Renaud el 12 de junio de 2026 en la Sala Devereux.
Queremos preguntar por la obra abstracta («¿cuántos movimientos tiene?») y también por esa noche («¿quién la tocó y dónde?»). Son dos preguntas sobre dos cosas distintas que comparten un nombre.
Y ahí está la primera tensión.
Una composición es una entidad atemporal. Se creó en 1801, sí, pero no ocurre en ningún instante: persiste como objeto cultural, idéntica a sí misma se toque o no. Una interpretación, en cambio, ocurre. Tiene fecha, lugar, intérprete, y se desvanece.
El reflejo ingenuo es poner la obra en el eje del tiempo. El modelo lo rechaza: el eje T es para momentos y rangos, no para entidades estables.
La obra vive en K, lo categórico y atemporal. La interpretación vive en O, lo situado. Es la separación que el capítulo de la clase fijó como D1, y aquí encuentra su caso límite más nítido.
(claro_de_luna) ∈ K
subtipo_de: sonata_para_piano
compositor: beethoven
anio_composicion: 1801
movimientos: [adagio_sostenuto, allegretto, presto_agitato] ← otros K
(interpretacion_5512) ∈ O
instancia_de: accion_interpretar
agente: helene_renaud ∈ M(O→Q)
obra_interpretada: claro_de_luna ∈ M(O→K)
lugar_de: sala_devereux ∈ M(O→L)
momento: 2026-06-12T20:30Z ∈ M(O→T)
duracion_min: 16 ∈ M(O→N)
Mira la línea obra_interpretada. Su firma es M(O→K): conecta un
evento situado con una categoría atemporal.
El rol genérico tema no servía, porque su firma es O→O y rechaza
valores en K. El prototipo obligó a declarar un rol de dominio que apunta de
O hacia K.
No es un parche aislado. Es la misma forma que reaparecerá con el medicamento que se prescribe (un evento O apuntando al fármaco K) y con el plan que se contrata.
La música no es excepcional. Es la primera vez que asoma el patrón «evento que refiere a una categoría», y por eso lo nombramos aquí.
La recursión categórica
La segunda tensión es más estructural. Una sonata se compone de movimientos. Cada movimiento, de secciones. Cada sección, de frases. Cada frase, de motivos. Cada motivo, de notas.
Cinco niveles anidados, todos en K. Y eso rompe una expectativa cómoda: que el eje de las categorías sea una lista plana de etiquetas.
No lo es. Es un árbol denso, con dos relaciones internas que conviene
distinguir. subtipo_de: una sonata es un tipo de obra.
compuesto_por: una sonata se arma con tres movimientos. La primera es
taxonómica; la segunda, de composición.
Con esa estructura, «¿qué obras de Beethoven contienen un movimiento en forma de
adagio?» deja de ser una búsqueda por igualdad y pasa a ser un
recorrido: bajar por compuesto_por hasta encontrar un nodo cuyo
subtipo_de sea movimiento_adagio.
El eje K, que en el spa o el taxi parecía una simple etiqueta, aquí muestra su otra cara: un mapa de conceptos navegable, sin límite de profundidad.
Lo nuevo que aportó la música
El eje K no es una lista de
etiquetas. Es un grafo de categorías con jerarquía propia. Dos relaciones lo estructuran:
subtipo_de (taxonomía) y compuesto_por (composición).
Y las consultas interesantes son recorridos, no comparaciones de igualdad. Cualquier dominio con todos y partes conceptuales (un plan de estudios, una norma con artículos, una receta con subrecetas) hereda esta forma.
Lo que la música deja pendiente
El tiempo musical (compases, pulsos, tempo) no es tiempo
absoluto y no entra en T. Por ahora se modela como K
(compas_4_4, figura_negra), o se reifica en O cuando hace falta
hablar de un compás concreto de una interpretación.
Funciona, pero es una solución de compromiso. Un sistema de patrones temporales relativos, finos y periódicos, sigue pendiente en la hoja de ruta. No rompe nada; el tratamiento de primera clase está por construir.
Química: una reacción que nadie hace
Pasemos al banco de pruebas. El objeto es la combustión del metano: lo que ocurre cuando hay metano, oxígeno y energía de activación suficiente, y que produce dióxido de carbono y agua.
Modelarla somete al sistema a presiones que ningún dominio comercial ejerce. La primera es brutal de tan simple.
¿Quién hizo la reacción?La pregunta que no tiene respuesta
La respuesta es nadie. Una reacción química no la hace ningún agente con intención. Ocurre porque las condiciones físicas se cumplieron. No hay vendedor, ni conductor, ni motor antifraude detrás.
Esto pone a prueba, sin red, la decisión que el capítulo de las situaciones llamó D5: la agencia contextual.
Esa decisión dice que el rol agente no es obligatorio (solo lo es si el verbo lo
exige) y que, cuando lo es, puede ocuparlo un humano, una organización, un programa o un
sensor.
La química es el caso donde el rol queda sencillamente vacío. Y el grafo lo acepta sin marcar error.
La plantilla y la instancia
La segunda presión es más rica. La química distingue sin esfuerzo dos cosas que el lenguaje cotidiano confunde.
Por un lado, la combustión del metano en general: una entidad categórica con su proporción invariante (un mol de CH₄ más dos moles de O₂ producen un mol de CO₂ y dos moles de H₂O).
Por otro, esta combustión concreta, la del cilindro número tres a las 14:32, con cantidades reales y a una escala determinada.
El modelo necesita capturar las dos y, sobre todo, conectar la instancia con su plantilla.
(combustion_metano) ∈ K ← la plantilla, atemporal
reactivos_esteq: [{ch4: 1}, {o2: 2}]
productos_esteq: [{co2: 1}, {h2o: 2}]
energia_activacion: kj_por_mol
(reaccion_3187) ∈ O ← la instancia, situada
instancia_de: combustion_metano ∈ M(O→K)
factor_escala: 0.5 ← la mitad de la estequiometría
insumo: n_0_5mol_ch4 (multi) ∈ M(O→N)
insumo: n_1mol_o2 (multi) ∈ M(O→N)
lugar_de: cilindro_3 ∈ M(O→L)
momento: 2026-05-16T14:32Z ∈ M(O→T)
— agente: ∅ (D5: el verbo no lo exige)
El puente entre ambas es instancia_de más el factor_escala. La
plantilla guarda las proporciones puras; la instancia, cuánto de esas proporciones se consumió
de verdad.
Con eso, todas las cantidades concretas salen de multiplicar la proporción por el factor. Y un evaluador puede comprobar el balance de masa sin que nadie lo haya tecleado dos veces.
factor_escala. La flecha instancia_de (un cable del eje
M) las une. El mismo molde sirve para sonata→interpretación,
receta→preparación y regla→aplicación.Durante el modelado quedaron registradas dos fricciones que aún persisten, y conviene nombrarlas con precisión:
Uno · el rol paciente es demasiado estrecho. En química, «el
paciente» de la reacción es el metano: una cantidad N ligada
a una categoría K, no un agente
Q.
El rol canónico paciente tiene firma O→Q y rechaza esto. Por ahora
lo cubre un rol de dominio, insumo: O→N, con limpieza. Pero deja en evidencia
que la firma canónica podría tener que ensancharse.
Dos · reactivo y producto no están en el
catálogo. El catálogo canónico (lo que el capítulo del lexicon llamó
D8) no los incluye.
El modelo permite registrarlos como roles de dominio sin pedir permiso, así que la química funciona hoy. Pero queda anotado el pendiente de canonizarlos, porque el patrón es universal: toda transformación tiene entradas y salidas, no solo las químicas.
Lo nuevo que aportó la química
La pareja plantilla en K + instancia en O + factor de escala resultó un patrón general, no un truco químico.
La sonata es plantilla y la interpretación su instancia. La receta es plantilla y la preparación su instancia. El procedimiento estándar de una fábrica es plantilla y cada corrida su instancia. La guía clínica es plantilla y cada atención su instancia. La química fue, sencillamente, donde el molde se hizo nítido.
Fútbol: dos relojes y un marcador que no se afirma
Vamos al estadio. El objeto es un partido concreto: un clásico de eliminatorias en el que la delantera Mara Solís marca al minuto 67 con un remate de zurda, tras una asistencia de Tania Ojeda.
Modelar un partido trae complicaciones que el spa y el taxi nunca plantearon. La primera es la simultaneidad.
En cada instante hay veintidós jugadoras haciendo cosas a la vez, más la árbitra, los cuerpos técnicos y el público. Registrarlo todo sería absurdo e inútil.
Conviene una aclaración. Esto no es una fricción del modelo. Es una decisión de granularidad: se modela solo lo que importa (goles, tarjetas, cambios, jugadas clave) y el resto queda implícito.
El mérito del modelo es que no obliga a registrar lo que no importa. No exige llenar un campo por cada jugadora en cada segundo. Y, en efecto, no lo hace.
El doble reloj
La segunda complicación es más sutil: en un partido conviven dos tiempos.
El tiempo absoluto, la hora del reloj de pared (2026-09-14T21:14:07Z). Y el
minuto de partido, el «minuto 67», que vive en una escala relativa al pitazo inicial y se
detiene en el entretiempo. No son el mismo eje.
El modelo los absorbe con doble registro: cada evento lleva un momento: T
absoluto y, si hace falta, un minuto_partido: N relativo.
Así, dos consultas conviven sin pisarse. «¿Qué pasó a las 21:14 hora local?» recorre el eje T. «¿Qué pasó al minuto 67?» recorre el eje N.
(gol_4471) ∈ O
instancia_de: evento_gol
agente: mara_solis ∈ M(O→Q)
asistente: tania_ojeda ∈ M(O→Q)
equipo: seleccion_sur ∈ M(O→O)
momento: 2026-09-14T21:14:07Z ∈ M(O→T) ← reloj absoluto
minuto_partido: 67 ∈ M(O→N) ← reloj de juego
parte_de: clasico_4471 ∈ M(O→O)
El marcador es estado derivado
La tercera complicación es la más instructiva del capítulo entero.
El «Selección Sur 2 – Selección Norte 1» no es un hecho que alguien afirma. Es la conclusión de sumar todos los goles registrados. Nadie escribe el marcador como dato. El marcador se deriva.
Es la misma forma que la fidelidad del spa (siete sesiones acumuladas dan una gratis) y que el costo total de un viaje en taxi. El modelo guarda los hechos primitivos, cada gol como evento propio, y un evaluador externo recorre el grafo y suma.
El modelo no calcula marcadores. Los prepara para que cualquier evaluador lo haga.
goles_sur = count(u, Pattern(
fixed={"equipo": seleccion_sur},
type_constraint=u.ind("evento_gol"),
))
goles_norte = count(u, Pattern(
fixed={"equipo": seleccion_norte},
type_constraint=u.ind("evento_gol"),
))
marcador = f"{goles_sur} - {goles_norte}" # el estado, derivado al vuelo
Durante el modelado apareció una sola fricción concreta.
El rol partes aplicado a un partido (sus dos equipos) traía la firma
T→Q, que da por hecho que las partes son agentes. Pero un equipo encaja
mejor como O: un colectivo, no un agente individual.
El parche propuesto es generalizar partes a O→V, admitiendo
cualquier eje de valor como destino. El prototipo confirmó la fricción y la sorteó con un rol
de dominio (parte: O→O), pero canonizar el parche sigue pendiente.
Hechos primitivos y estado derivado
Hecho primitivo: algo que ocurrió y se afirma directamente (un gol, un pago, un diagnóstico). Se guarda.
Estado derivado: una conclusión obtenida sumando hechos primitivos (un marcador, un saldo, una fidelidad acumulada). No se guarda: se calcula cuando se necesita.
WQuestions guarda la historia de los cambios y deriva el estado. No guarda el estado y olvida la historia.
Lo nuevo que aportó el fútbol
La distinción entre hecho primitivo y estado derivado quedó nítida aquí, y rompe una expectativa que casi todos los sistemas relacionales arrastran: guardar el «estado actual» como tal.
El precio de derivar es que el evaluador externo tiene que existir. La ganancia es que el pasado nunca se pierde. Siempre se puede reconstruir el marcador al minuto 30, porque los goles siguen ahí, fechados.
Contratos: cuando lo normativo manda sobre lo factual
Última escena, la notaría. El objeto es un contrato de alquiler a doce meses, con cláusulas, obligaciones recíprocas, una cláusula de rescisión por impago y, llegado el caso, una rescisión efectiva.
Es el dominio donde lo factual (lo que pasó) queda detrás de lo normativo (lo permitido, lo exigido, lo prohibido). El contrato existe y obliga antes de que ocurra ningún hecho que regule.
La primera tensión es la vigencia: del contrato entero y de cada cláusula por separado. Algunas valen durante todo el plazo. Otras solo en ventanas concretas: la de actualización del alquiler aplica únicamente en el aniversario.
El modelo lo absorbe con D6: las propiedades que cambian llevan un rango de
inicio/fin.
Al implementarlo se ve claro que lo ideal sería tener los dos tiempos completos: no solo cuándo algo es cierto, también cuándo lo afirmamos. Esa segunda mitad queda anotada como pendiente.
Condición, consecuente y argumento
La segunda tensión son los condicionales. Una cláusula tiene la forma
«si X, entonces Y»: si el inquilino impaga dos meses, el arrendador puede rescindir.
El modelo la trata reificando la cláusula como una situación con dos cables, condicion
y consecuente:
(clausula_14) ∈ O
instancia_de: clausula_contrato
parte_de: contrato_alq_2208 ∈ M(O→O)
condicion: impago_2_meses
consecuente: rescision_autorizada
vigencia: [2026-01-01 .. 2026-12-31] (D6)
Cuando una rescisión efectivamente ocurre, no se dispara sola. Un evaluador (humano o
algorítmico) verifica que la condición se cumpla y emite la rescisión como un hecho nuevo, que
apunta a la cláusula con el cable justificado_por:
Ese cable no es decorativo. El capítulo sobre el porqué mostró que no existe un eje «por
qué»: se reparte en cuatro cables (causado_por, motivado_por,
con_finalidad y justificado_por). Es la decisión
D7.
En lo normativo, el cable que importa es el último: la justificación.
La auditoría legal («¿bajo qué autoridad se rescindió este contrato?») se reduce a
seguir justificado_por hasta la cláusula, y de la cláusula al contrato. La cadena
entera está en el grafo, no en la cabeza de un abogado.
La tercera tensión es qué pasa cuando una cláusula se renegocia.
La regla del modelo es severa y deliberada: los hechos no se editan. Una
renegociación no toca el hecho viejo. Es una situación nueva que lo
rectifica o lo cancela.
El historial se conserva entero y el «estado actual» se reconstruye por consulta. Es lo mismo que vimos en la clínica con un rediagnóstico y en el taxi con una cancelación.
En lo normativo, el sistema no debe producir solo el resultado; debe producir la cadena de razones que lo justifica.La lección del contrato
Lo que el contrato deja pendiente
Uno · los dos tiempos completos. Tenemos el
tiempo de validez (cuándo algo es cierto) pero no el de registro (cuándo lo
afirmamos). Para un litigio que pregunte «¿qué sabía el sistema en mayo de
2024?» hace falta añadir tx_inicio/tx_fin a cada hecho. El
prototipo ya guarda un tx_time, pero aún no lo expone en las consultas.
Dos · reglas de derivación con versión. Si la ley cambia y un contrato firmado antes debe leerse bajo la ley vieja, el evaluador necesita saber qué versión aplicar. La regla se versiona con D6, pero la mecánica de evaluación queda como trabajo de la capa superior, el motor de inferencia.
Lo nuevo que aportó el contrato
La importancia de dejar el argumento por escrito. En un dominio normativo, lo valioso no es el veredicto («rescindido» o «no rescindido»), sino la cadena de razones que lo sostiene.
Al exigir un justificado_por que apunte a una cláusula, el
modelo obliga a producir esa cadena. No es opcional: un hecho normativo sin
justificación se ve incompleto a simple vista.
Lo que emergió de los cuatro
Vistos en serie, los cuatro dominios incómodos dejan tres lecciones que trascienden a cada uno y que conviene grabar.
🧩
El molde plantilla–instancia es universal
Apareció en química (reacción genérica frente a concreta), en música (sonata frente a interpretación), antes en clínica (protocolo frente a atención) y en taxi (tarifa estándar frente a aplicada). No pertenece a ningún dominio. Es un patrón tan central como la reificación, y merece figurar como convención explícita en el lexicon de cualquier proyecto.
⚙️
El evaluador externo es estructural
Marcador del fútbol, fidelidad del spa, precio dinámico del taxi, evaluación de cláusulas del contrato, conteo de visitas para un diagnóstico: todo el estado derivado es trabajo del evaluador. El modelo guarda los hechos primitivos y prepara el grafo; el razonamiento se construye encima. Es un principio arquitectónico, no una simplificación postergada.
🔧
Las grietas son pocas y conocidas
Tras ocho dominios, las fricciones reales son cuatro:
roles del catálogo D8 algo estrechos (paciente, partes,
tema); los dos tiempos completos; el tiempo musical y los patrones temporales
finos; y las reglas de derivación con versión. Cuatro pendientes anotados, ningún punto de
quiebre.
Esa última lección es la que más importa para un lector escéptico.
Un modelo que nunca falla en público suele ser un modelo que no se ha probado en serio. Uno que señala con precisión sus cuatro grietas, y muestra que ninguna lo derrumba, es un modelo que pasó por el banco de pruebas.
Las cuatro pendientes son el mapa de hasta dónde llega hoy la arquitectura y qué le falta para llegar más lejos.
Y como cada gol, cada reacción y cada cláusula son situaciones del mismo tipo, la pregunta que importa deja de ser «¿quién marcó el gol 4471?».
Pasa a ser «¿quién encabeza la tabla de goleadores?» o «¿cuántos contratos siguen sin entrar en vigencia?». El ranking no es una pieza aparte. Es ordenar lo que ya contamos.
El balance de la Parte V
El modelo se sostuvo en los doce dominios del libro, ocho industriales y cuatro de estrés, sobre un prototipo en Python de unas 2.250 líneas y un catálogo de 38 roles.
Donde hubo fricción hubo parche o pendiente anotado. En ninguno de los doce se quebró el esqueleto. Esa es, en una frase, la evidencia que la Parte V se propuso reunir.
Con esto cierra la sala de máquinas. Cargamos el puente con camiones hasta oírlo rechinar en cuatro lugares, y los cuatro chirridos están anotados en el plano.
Queda una pregunta que recorre el libro por debajo y que la siguiente parte pone al frente. Si las preguntas son un vocabulario común, ¿qué cambia para las máquinas que hoy aprenden a hablar cuando ese vocabulario existe? A eso vamos.