Punto de retorno · TX-1652, el plano sube desde la marca y la diana llega a sus fármacos (09/11/2026 10:24)

Trabajo TX-1362 (Elaizii en la red común). Conversación de trabajo de TX-1652 abierta por el supervisor (WK-SUPERVISOR-001). Escrito por Silicio al cerrar. Karb and Sil · CC BY 4.0.

Qué estaba mal (tres muestras de una clase)

  1. «¿Qué es Inhixa?» decía «sin nada por encima»: la marca es una planta virtual (agrupa presentaciones) y situar solo subía por relaciones que salen del objeto; de la marca no sale ninguna escalera de subida.
  2. «¿Qué fármacos inhiben la HMG-CoA reductasa?» decía que no hay: la enzima de SNOMED (sct:29552007) no tiene ninguna relación con la clase «inhibidor de HMG-CoA reductasa» (sct:372912004) ni con el gen HMGCR; el 08/11 salió bien por suerte del modelo (encontró la clase buscando), no por un camino del grafo.
  3. 2.098 prospectos solo en PDF, sin secciones.

Qué quedó hecho (en producción desde el 09/11/2026 10:16)

  • Regla general del plano (dev/grafo red/plano.py, commit bad6a43 en main):
  • AGRUPA = las relaciones grupo → miembro («tiene como presentación», «agrupa (diana ChEMBL)»): desde una planta virtual se baja una vez a sus miembros y se sube desde ellos. La marca es ahora la planta CIMA/marca (rango 1); «es una presentación de» sube (presentación → marca). Regla virtual-hereda en plano_regla.
  • PROPIA + CLASE: lo propio de una clase (su ATC) no se hereda hacia el objeto: Inhixa ya no sale con B01AB01 (heparina) ni C05BA03, solo B01AB05 (enoxaparina). Era la misma clase de error, visto al probar.
  • _id_flexible: el nombre tal como lo escribe quien pregunta («Inhixa» / «INHIXA») vale para situar, navegar y prospecto, por el índice FTS (la mesa no tiene índice sobre texto_plano: el = de antes la barría entera, ~1 s).
  • Regla general diana → fármacos (consultas.Mesa.farmacos_de_diana / clases_de_diana): con cada nombre de la diana (español e inglés, con y sin artículo, con y sin espacios en los guiones) se forman los nombres de clase que SNOMED/MeSH construyen con ella («inhibidor de X», «X inhibitor», antagonista, agonista, bloqueador, activador, modulador) y se buscan exactos; de la clase se baja por «es un» (si es una disposición o un rol, por «tiene disposición»/«tiene el rol»), sin las sales («es modificación de» otro de la lista) ni la clase misma; aparte, lo de ChEMBL («actúa sobre», de vuelta) y, de los fármacos de la clase, sobre qué diana de ChEMBL actúan (así aparece el gen HMGCR sin puente enzima↔gen). Syd: herramienta farmacos_de_diana (descrita en vocabulario de grafo, norma de las herramientas) y paso nuevo en la forma mecanismo (apis/elaizii syd.py).
  • Cifras (mesa de producción, herramientas/medidas-tx1652/cifras.py, corrido en la nave):
  • Marcas que suben: 12.408 de 12.408 (antes 0: encima vacío en todas). Llegan a una sustancia (SNOMED/ChEBI) 12.012; a un ATC 12.398. Las 396 sin sustancia son sobre todo vacunas, terapias celulares y combinaciones (MIXTARD, ZOSTAVAX, HOLOCLAR, XULTOPHY…): su presentación no cuelga de una sustancia de SNOMED, sí de su ATC.
  • Dianas que llegan a fármacos por la clase: SNOMED tiene 594 clases «acción de X»; 162 X existen como objeto en la mesa y 148 llegan a fármacos por la regla; de ellas 144 no llegaban por ChEMBL (ChEMBL ya llevaba 1.776 dianas por «actúa sobre»). Límite conocido: el nombre español de SNOMED de los inhibidores de BCL-2 es «inhibidor de linfoma de células B», y casa con el linfoma (hallazgo). Es el nombre de la fuente, no la regla; se lista, no se parchea.
  • Tests: dev/grafo python3 -m pytest tests -q → 393 passed, 1 skipped, rc=0 (Mac; 9 nuevos en tests/test_plano_virtual_y_diana.py). Elaizii, suite entera con oro en la nave: herramientas/medidas-tx1652/suite.sh (en la nave) (flock de la suite, RED_MESA_SQL, RUN_LLM=1, mesa de producción, --ignore=tests/test_mcp.py) → 535 passed, 3 skipped, 1 xpassed, rc=0. Oro nuevo (test_que_es_inhixa_situa_sustancia_clase_atc, test_farmacos_inhiben_hmg_coa_reductasa_nombre_espanol) 3 de 3 en la nave.
  • Desplegado con el orden de docs/elaizii-por-dentro.md § 7 (herramientas/medidas-tx1652/desplegar.sh): plano reconstruido en la mesa de trabajo (76 plantas, 137 escaleras, 296 pasarelas, 7 reglas; 92 s), copia a producción, imagen **wordkers-elaizii:33f4805**; anterior guardada mesa.sqlite.<fecha>.anterior y retirada la más vieja (20261106-2216), quedan tres. docs/plano.md y su diagrama regenerados (herramientas/plano_doc.py; Archify showcase ok).
  • Comprobado desde fuera, 3 veces cada una (elaizii-api.wordkers.com/v1/elaizii/preguntar, desde OVH): «¿qué es Inhixa?» → enoxaparina, HBPM, B01AB05 (3/3, nunca «nada por encima»); «¿qué fármacos inhiben la HMG-CoA reductasa?» → las 8 estatinas (+ ezetimiba/simvastatina) por la clase SNOMED, y HMGCR como su diana en ChEMBL (3/3).
  • Prospectos PDF: medidos y con propuesta en docs/estado/prospectos-pdf-2026-11-09.md (no ejecutada).

Ojo

  • **api.wordkers.com/v1/elaizii/* da 404** (con clave interna; sin clave, 401): la API común no enruta Elaizii. El «desde fuera» documentado es elaizii-api.wordkers.com. No es de esta TX (infra compartida): apuntado como nota en TX-1652.

Lo primero al volver

La cola de la mejora sigue: E-1627 (banco de uso real) → E-1628 → TX-1629 → E-1624 → E-1608-2. Los prospectos PDF, cuando toque, como encargo con la propuesta de prospectos-pdf-2026-11-09.md.

En esta página