Skip to content

English · Español

Lab 00 — Escribe data/corpus_spec.md (la spec canónica)

Objetivo: antes de que se ejecute código alguno, escribe la spec legible por humanos del corpus: la tabla de verbos, los esquemas de tiempo, la taxonomía de mis-conjugaciones, el JSONSchema de fila. El validador y el generador se derivan de este documento.

Tiempo estimado: 90–120 minutos (mayormente tipear la tabla de verbos + emparejamientos en español).

Prerrequisito: teoría 00..03.md leída.


Lo que produces

Un único archivo commiteado data/corpus_spec.md que contiene:

  1. Preámbulo — versión del corpus (1.0.0), referencia de alcance (§A13), licencia.
  2. La tabla de 20 verbos (inglés → español con regularidad por idioma y columnas de formas irregulares).
  3. Los 6 esquemas de forma superficial de tiempo (una sección por tiempo, con los patrones en inglés y español para cada persona).
  4. La taxonomía de mis-conjugaciones (6 tipos en v1).
  5. El JSONSchema de fila (como un bloque de código — machine-readable).
  6. Reglas de validación (en prosa) que el script validador debe implementar.

data/corpus_spec.md es el contrato. El generador lee de él (conceptualmente); el validador verifica contra él.

TODOs

Bloque A — preámbulo

  • Título, versión, fecha.
  • Cita §A13 (gramática verbal en inglés) y §A2 (emparejamiento en español) por archivo+sección.
  • Resumen de un párrafo en inglés.
  • Resumen de un párrafo en español (según CLAUDE.md §0.6, la política bilingüe).

Bloque B — la tabla de 20 verbos

  • Lista los 20 verbos (12 regulares + 8 irregulares) según §A13.
  • Para cada uno, rellena: lema en inglés, lema en español, regularidad-EN, regularidad-ES.
  • Para los 8 irregulares en inglés, añade columnas: past simple, past participle.
  • Para los irregulares en español (los que sean), añade una nota corta (p. ej., "stem change e→ie") en lugar de enumerar cada forma (el generador maneja eso).
  • Sección de notas: colisiones (watch/look ambos → mirar), sintaxis invertida (likegustar).

Formato sugerido:

| English | Spanish | EN_reg  | ES_reg  | EN past | EN participle | Notes              |
|---------|---------|---------|---------|---------|---------------|--------------------|
| work    | trabajar| reg     | reg     | worked  | worked        |                    |
| go      | ir      | irreg   | irreg   | went    | gone          | ES highly irreg    |
| like    | gustar  | reg     | reg     | liked   | liked         | inverted syntax    |
| ...     | ...     | ...     | ...     | ...     | ...           | ...                |

Bloque C — esquemas de forma superficial de tiempo

  • Seis subsecciones, una por forma superficial: infinitive, present_simple, past_simple, past_participle, future_will, future_going_to.
  • Cada subsección muestra patrones en inglés + español para las 3 personas (1sg, 2sg, 3sg).
  • Marca el "giro" morfológico para cada uno: p. ej., -s para 3sg present; acuerdo del auxiliar to be en future_going_to.
  • Para cada forma superficial, proporciona un ejemplo completamente trabajado para un verbo regular (work) y un verbo irregular (go).

Bloque D — taxonomía de mis-conjugaciones

  • Lista los 6 tipos v1 de la teoría 01 (missing_third_person_s, overregularization_past, wrong_aux_will_with_to, wrong_aux_going_to_missing_ing, subject_verb_disagreement, bare_participle_missing_aux).
  • Para cada uno: condiciones de activación (qué celdas son elegibles), un ejemplo, la forma correcta, explicación pedagógica de una frase.
  • Nota que la taxonomía está cerrada para v1 — cualquier tipo nuevo requiere una subida de versión de la corpus-spec.

Bloque E — JSONSchema de fila

  • Embebe un JSONSchema para el formato de fila (según teoría 01). Usa draft-07 o 2020-12.
  • Campos: id, text, spanish, verb_lemma, spanish_lemma, tense, person, english_regularity, spanish_regularity, label, mis_conjugation_type, correct_form, seed, fingerprint.
  • Requerido vs opcional claramente marcado. mis_conjugation_type y correct_form son nullables pero el validador hace cumplir la restricción cruzada de campos (ambos poblados sii label = "mis_conjugated").
  • Enums para tense, person, label, mis_conjugation_type, english_regularity, spanish_regularity.

Bloque F — reglas de validación en prosa

Lista las 12 verificaciones de la teoría 02:

  • Validez del esquema.
  • Sin duplicados exactos por fingerprint.
  • Cobertura de celda: 360 celdas todas tienen ≥ 1 fila correcta.
  • Los 20 verbos presentes.
  • Las 6 superficies de tiempo por verbo.
  • Las 3 personas por (verbo, tiempo).
  • Tipos de mis-conjugación de la taxonomía canónica.
  • Las filas de mis-conjugación tienen correct_form poblado.
  • Las filas correctas tienen mis_conjugation_type = null.
  • Cada fila tiene un campo de español.
  • Normalización NFC.
  • Longitud de texto en rango.
  • (Post-split) sin solapamiento de fingerprint y sin solapamiento cross-split de (verbo, tiempo).

Bloque G — verificación de cordura

  • Añade una sección final: "Ejemplo trabajado de una celda." Escoge (work, present_simple, 3sg). Escribe la fila JSON en completo. Muestra que satisface cada regla listada en el Bloque F.

Restricciones

  • Solo Markdown, sin código más allá de bloques JSON / JSONSchema en línea. Este es el contrato, no la implementación.
  • Sin enlaces externos a Wikipedia/recursos de gramática en v1; la tabla es auto-contenida. Si necesitamos citar algo, va en docs/phase-12-corpus-design/theory/.
  • El español debe ser NFC. Tipea ñ, no n + ˜ (tilde combinante). Verifica con cat -v o python -c "import unicodedata; print(unicodedata.is_normalized('NFC', open('data/corpus_spec.md').read()))".
  • Fija la versión en 1.0.0. Cualquier cambio futuro incrementa según la tabla semver en la teoría 03.

Condiciones de parada

Has terminado cuando:

  1. data/corpus_spec.md existe y está commiteado.
  2. La tabla de 20 verbos tiene las 20 entradas con emparejamientos en español y columnas de formas irregulares rellenas.
  3. Los 6 esquemas de forma superficial de tiempo están documentados con ejemplos trabajados para verbos regulares e irregulares.
  4. Los 6 tipos de mis-conjugación están documentados con ejemplos y patrones de corrección.
  5. El JSONSchema está embebido y es válido (puedes pegarlo en un validador JSONSchema y que acepte una fila de muestra).
  6. Las 12 reglas de validación están listadas en prosa.

Escollos

  • Codificación de acentos en español. Si tu editor guarda NFD, tu spec está incorrectamente codificada. Verifica NFC.
  • Ambigüedad de traducción. be puede ser ser o estar. La spec debe escoger una (default ser) y documentar la elección — no dejarla ambigua para el generador.
  • Stems irregulares en español. Para irregulares en español (p. ej., tener → tengo para 1st-sg presente), la spec puede o bien enumerar las formas irregulares o describirlas por regla. Recomendación: enumerar. Las reglas son imanes de bugs.
  • Inversión de sintaxis likegustar. Fácil de olvidar. La spec debe destacar esto explícitamente para que los esquemas del generador para like no sigan el patrón estándar.
  • Olvidar was/were para be past. I was, you were, he was. La spec debe codificar esta distinción.

Pista de último recurso

Si llevas 2 horas y la tabla de verbos sigue medio vacía: no perfecciones el español — escoge una traducción canónica por verbo en inglés, documenta cualquier incertidumbre en la columna de Notas y sigue. El lab es sobre asentar la spec, no sobre ser un lingüista del español. La revisión en español de Borja detectará errores en tiempo de validación.

Cuándo consultar solutions/

Después de que la spec esté commiteada. Solución: solutions/00-corpus-spec-ref.md (apertura de fase) contiene una tabla de 20 verbos de referencia y el JSONSchema canónico.


Siguiente lab: lab/01-implement-generator.md.