From 1708fd9e3a940cd9eba72875e983f12dafe8c0ff Mon Sep 17 00:00:00 2001 From: dev Date: Tue, 8 Sep 2026 13:19:14 +0200 Subject: [PATCH] Tablas auxiliares de genero: origen, metro, compas y alias MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `padre_id` no aguantaba. Un genero no deriva de uno: el bolero-son es bolero y son, y la bachata viene de tres. `genero_origen` guarda el grafo con el tipo de vinculo —deriva, fusiona, influye— y una arista marcada como principal da el arbol de navegacion, asi que no hay que elegir entre la verdad y la usabilidad. Ese tercer tipo ya estaba escrito en el contenido, dentro del campo equivocado: son-cubano.md pone la herencia de la decima y la copla dentro de `metrica` porque no habia donde ponerla. Y lo comparable sale de la prosa a vocabularios: el octosilabo aparece en tres de las cinco fichas y no se podia preguntar por el. `metro` enlaza ademas con el glosario, que es donde ese termino ya vive. Co-Authored-By: Claude Opus 5 (1M context) --- docs/modelo-de-datos.md | 67 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 7 deletions(-) diff --git a/docs/modelo-de-datos.md b/docs/modelo-de-datos.md index 971afd3..6da82a4 100644 --- a/docs/modelo-de-datos.md +++ b/docs/modelo-de-datos.md @@ -36,7 +36,7 @@ A eso se suma que nada se valida —`estilo: bolreo` no falla, la canción desaparece de su sección—, nada se consulta sin cargar el catálogo entero en memoria, y cambiar una coma exige reconstruir y desplegar. -Alcance: **52 tablas** (13 ya existen), **48 archivos** que migrar, **22 rutas** +Alcance: **57 tablas** (13 ya existen), **48 archivos** que migrar, **22 rutas** que hoy leen `$lib/content`. ## Decisiones transversales @@ -119,12 +119,65 @@ tarjeta y pasa a ser la pieza más rica del sitio, con su historia, sus instrumentos, sus letristas y sus obras de referencia. - **`pais`** _(nueva)_ — código ISO 3166-1, nombre, gentilicio, region. -- **`genero`** _(nueva)_ — bolero, tango, cumbia. **Solo lo corto y comparable - va en columnas**: compas, tempo, metrica, rima, origen_lugar, origen_ano - (ordenable, hoy no lo es). Eso es lo que se pone en una tabla para comparar - géneros. Y **`padre_id` para la jerarquía**: los subgéneros son sus hijos y el - género del que deriva es su padre, sin nada más. Sin jerarquía, «todas las - variantes» es una lista plana de cien nombres sin relación. +- **`genero`** _(nueva)_ — bolero, tango, cumbia. En columnas solo lo suyo: + origen_lugar, origen_ano (ordenable, hoy no lo es), tempo, rima, y las notas + en prosa `metrica_nota` y `compas_nota` para el matiz que no cabe en una + tabla —«a menudo alternados» es lo que hace útil la ficha—. + + **Lo comparable sale a tablas auxiliares.** Con ocho fichas se lee; con cien, + que es a donde va esto, hay que poder preguntar. + +- **`genero_origen`** _(nueva)_ — genero_id, origen_id, **tipo** (deriva · + fusiona · influye), `principal`, nota, orden. + + **Sustituye a `padre_id`, que no aguantaba.** Un género no deriva de uno: + el bolero-son es bolero _y_ son; la salsa viene del son, el mambo y la + guaracha; la bachata, del bolero, el son y el merengue. Con un solo padre, la + primera fusión obliga a elegir cuál de los dos mentir —y `bolero` y + `son-cubano` ya existen como fichas separadas—. + + El tercer tipo, `influye`, es más débil que derivar y hoy ya está escrito, + aunque en el campo equivocado. Esto es literal de `son-cubano.md`: + + > metrica: 'Octosílabo, **herencia de la décima y la copla españolas**' + + Un vínculo entre géneros, metido dentro del campo de la métrica porque no + había dónde ponerlo. + + El grafo guarda la verdad y la arista `principal` —única por género, con + índice parcial— da el árbol de navegación. Los subgéneros son las filas que + apuntan a uno con tipo `deriva`. + + Guardas: `genero_id <> origen_id`, y **un disparador contra los ciclos**. Un + grafo admite que A derive de B y B de A, y una consulta recursiva sobre eso no + termina. En una tabla de este tamaño, comprobarlo al insertar con un + `WITH RECURSIVE` no cuesta nada. + +- **`metro`** + **`genero_metro`** _(nuevas)_ — codigo, nombre, `silabas`, y + `termino_id` contra el glosario, porque «octosílabo» es también una entrada + suya. La tabla puente lleva `predominante`. + + Semilla: de pentasílabo a alejandrino, más una fila **`libre`** con `silabas` + nulo, para que «géneros sin métrica fija» —la bachata: «Libre, cercana al + habla»— también sea una consulta y no una ausencia. + + El motivo, con los datos delante: el octosílabo aparece en el bolero, el son y + el tango; el endecasílabo en el bolero y el tango; el alejandrino en el tango. + Los tres escritos en prosa. **«Enséñame los géneros en octosílabo» es justo lo + que un taller de métrica necesita poder preguntar**, y hoy no se puede. + +- **`compas`** + **`genero_compas`** _(nuevas)_ — codigo ('2/4', '4/4', '3/4', + '6/8', '2/2'), nombre, numerador y denominador —guardados aparte para poder + pedir los binarios o los ternarios—, y `principal` en la puente. El bolero + lleva dos filas: 2/4 en el clásico, 4/4 en el moderno. + +- **`genero_alias`** _(nueva)_ — genero_id, nombre, pais_codigo, nota. + + _Son cubano_, _son jarocho_, _son huasteco_, _son montuno_. La cumbia + colombiana y la argentina. Con cien fichas, buscar «son» devuelve cuatro cosas + que no se parecen; cada una tiene que encontrarse por como la llaman donde se + toca. + - **`genero_seccion`** _(nueva)_ — clave, titulo, cuerpo, orden. **Toda la prosa de la ficha**: introducción, historia, estructura de las canciones, motivación y temática. Y lo que surja mañana. Con una columna por bloque, en un mes hay