WQuestions

Parte V · En la práctica

25

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:

🎼 Música · recursión categórica, K denso, sin agente humano del lado de la obra 🔥 Química · agencia contextual al extremo (sin agente), plantilla + instancia con escala Fútbol · concurrencia masiva, doble reloj, estado derivado 📜 Contratos · lo normativo por encima de lo factual, vigencia y argumento explícito

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.

K 🎼 Música recursión categórica La obra vive en K (atemporal); la interpretación, en O (situada). K es un árbol denso, no una lista. sonata → movimiento → frase → nota Q 🔥 Química agencia contextual (D5) al límite No hay agente: nadie hace la reacción. El rol Q queda vacío y el grafo lo acepta. Plantilla en K + instancia en O con escala. K · plantilla O · instancia T N ⚽ Fútbol concurrencia y estado derivado Dos relojes: T absoluto y N minuto de juego. 22 acciones a la vez: se guarda lo significativo. El marcador no se afirma: se deriva de los goles. goles → Σ → "2 - 1" (estado derivado) T = 21:14:07Z ‖ N = minuto 67 M 📜 Contratos lo normativo por encima de lo factual Cada cláusula tiene vigencia propia (D6). Condición → consecuente, reificado. El argumento se obliga vía justificado_por (D7). rescisión — justificado_por → cláusula la cadena de razón queda en el grafo
Figura 25.1. Los cuatro dominios incómodos y la zona del modelo que cada uno tensa. La música estira el eje K hasta volverlo un árbol recursivo; la química vacía el rol del agente (Q tachado) y exige la pareja plantilla–instancia; el fútbol duplica el reloj (T + N) y convierte el marcador en estado derivado; los contratos hacen del eje M (los predicados del porqué) el centro de gravedad.

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.

tripletas
(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.

claro_de_lunaK compuesto_porM(K→K) adagio_sostenutoK compuesto_porM(K→K) frase_aK

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.

tripletas
(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.

K combustion_metano la plantilla · atemporal 1 CH₄ + 2 O₂ 1 CO₂ + 2 H₂O reactivos_esteq · productos_esteq proporciones puras, sin cantidades se interpreta una vez, se reusa siempre instancia_de M(O→K) O reaccion_3187 la instancia · situada factor_escala = 0.5 × ½ insumo 0.5 mol CH₄ insumo 1.0 mol O₂ cilindro_3 2026-05-16T14:32Z cantidades reales = esteq × factor
Figura 25.2. El patrón plantilla–instancia. La reacción genérica vive en K con su estequiometría invariante (las proporciones, en tono N); cada reacción concreta vive en O con cantidades reales obtenidas multiplicando la plantilla por un 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.

tripletas
(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.

python
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:

tripletas
(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:

rescision_2208O justificado_porM(O→O) clausula_14O

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.