name: ikusmira_intencion_consulta
description: |
  Clasificador de intención de búsqueda para Ikusmira.

  Entrada: la cadena de búsqueda que el lector ha tecleado (o una pregunta
  más larga formulada desde /consulta).

  Salida: una etiqueta que el front-end usa para:
    1. Enriquecer la cabecera de resultados ("Buscas una definición…").
    2. Sugerir el primer estante temático del corpus.
    3. Ofrecer atajos contextuales (línea del tiempo, biografía, etc.).

  Las clasificaciones siguen un esquema jerárquico:
    - `intencion:<tipo>`   — qué quiere obtener el lector.
    - `disciplina:<area>`  — sobre qué estante temático trata la consulta.
    - `forma:<formato>`    — formato esperado (lista, comparativa, formula…).

  La regla más específica (mayor confidence) gana. Si nada dispara, el
  default `intencion:general` deja que Marrow haga el trabajo normal.

rules:

  # ============================================================
  # ===================== TIPO DE INTENCIÓN ====================
  # ============================================================

  - id: intencion_definicion_lema
    when:
      all:
        - language_is: ["es"]
        - any:
            - starts_with_any:
                - "qué es "
                - "que es "
                - "qué significa "
                - "que significa "
                - "definición de "
                - "significado de "
                - "concepto de "
                - "definir "
            - regex: "(?ui)^\\s*[a-záéíóúñü]+\\s*\\?\\s*$"
            - contains_any:
                - "qué quiere decir"
                - "a qué se refiere"
                - "qué se entiende por"
                - "definición precisa"
    classify: intencion:definicion
    confidence: 0.95
    explanation: "El lector pide una definición o un significado preciso."

  - id: intencion_biografia
    when:
      all:
        - language_is: ["es"]
        - any:
            - starts_with_any:
                - "quién fue "
                - "quien fue "
                - "quién es "
                - "quien es "
                - "biografía de "
                - "biografia de "
                - "vida de "
                - "obra de "
            - semantic_match:
                examples:
                  - "quién fue el pensador que escribió sobre la condición humana"
                  - "biografía resumida del autor"
                  - "datos personales y carrera del filósofo"
                  - "qué hizo este autor durante su vida"
                  - "vida y obra del economista"
                threshold: 0.5
                language: "es"
    classify: intencion:biografia
    confidence: 0.9
    explanation: "El lector busca información biográfica sobre una persona."

  - id: intencion_comparacion
    when:
      any:
        - contains_any:
            - " vs "
            - " frente a "
            - "diferencia entre"
            - "diferencias entre"
            - "similitudes entre"
            - "comparación entre"
            - "comparativa entre"
            - "qué diferencia hay"
            - "qué tienen en común"
        - regex: "(?ui)\\b(\\w{3,})\\s+(o|y)\\s+(\\w{3,})\\s*[:\\?]"
    classify: intencion:comparacion
    confidence: 0.92
    explanation: "El lector quiere comparar dos o más conceptos."

  - id: intencion_historica_fecha
    when:
      all:
        - language_is: ["es"]
        - any:
            - starts_with_any:
                - "cuándo "
                - "cuando "
                - "en qué año "
                - "qué año "
                - "fecha de "
            - contains_any:
                - "línea del tiempo"
                - "cronología de"
                - "cronologia de"
                - "antes de cristo"
                - "después de cristo"
                - "siglo "
            - regex: "(?ui)\\b1[0-9]{3}\\b|\\b20[0-2][0-9]\\b"
    classify: intencion:historica
    confidence: 0.88
    explanation: "El lector busca contexto temporal o fechas concretas."

  - id: intencion_causal_porque
    when:
      all:
        - language_is: ["es"]
        - any:
            - starts_with_any:
                - "por qué "
                - "porque "
                - "por que "
                - "cuál es la causa"
                - "cual es la causa"
                - "qué provoca "
                - "que provoca "
                - "qué causa "
                - "que causa "
                - "razones de "
            - contains_any:
                - "causa de"
                - "motivo de"
                - "origen de"
                - "consecuencias de"
                - "efectos de"
    classify: intencion:causal
    confidence: 0.93
    explanation: "El lector busca causas, motivos o consecuencias."

  - id: intencion_metodo_como
    when:
      all:
        - language_is: ["es"]
        - any:
            - starts_with_any:
                - "cómo "
                - "como se "
                - "cómo se "
                - "de qué manera "
                - "pasos para "
                - "guía para "
                - "guia para "
                - "método de "
                - "metodo de "
                - "procedimiento para "
            - contains_any:
                - "paso a paso"
                - "tutorial de"
                - "manual de"
    classify: intencion:metodo
    confidence: 0.88
    explanation: "El lector busca un procedimiento o método."

  - id: intencion_ejemplo
    when:
      all:
        - language_is: ["es"]
        - any:
            - starts_with_any:
                - "ejemplo de "
                - "ejemplos de "
                - "casos de "
                - "muestras de "
            - contains_any:
                - "un ejemplo"
                - "algunos ejemplos"
                - "casos prácticos"
                - "casos practicos"
                - "ilustración de"
                - "ilustraciones de"
    classify: intencion:ejemplo
    confidence: 0.93
    explanation: "El lector quiere ejemplos concretos."

  - id: intencion_lista
    when:
      all:
        - language_is: ["es"]
        - any:
            - starts_with_any:
                - "lista de "
                - "tipos de "
                - "clases de "
                - "categorías de "
                - "categorias de "
                - "clasificación de "
                - "clasificacion de "
                - "principales "
                - "los principales "
                - "las principales "
            - contains_any:
                - "cuáles son los"
                - "cuales son los"
                - "cuáles son las"
                - "cuales son las"
                - "enumeración de"
                - "enumeracion de"
    classify: intencion:lista
    confidence: 0.84
    explanation: "El lector espera una enumeración o lista."

  - id: intencion_cita_fuente
    when:
      all:
        - language_is: ["es"]
        - any:
            - starts_with_any:
                - "cita de "
                - "frase de "
                - "qué dijo "
                - "que dijo "
                - "qué escribió "
                - "que escribio "
            - contains_any:
                - "obra completa"
                - "bibliografía de"
                - "bibliografia de"
                - "referencia bibliográfica"
                - "fuente primaria"
    classify: intencion:cita
    confidence: 0.85
    explanation: "El lector busca una cita, una frase atribuida o una fuente."

  # ============================================================
  # ============= DISCIPLINA / ESTANTE TEMÁTICO ================
  # ============================================================
  #
  # Estos 19 estantes son los del corpus actual de Ikusmira; cada uno
  # promueve la sección correspondiente bajo /c/<slug>/.

  - id: disciplina_filosofia
    when:
      all:
        - any:
            - contains_any:
                - "filosofía"
                - "filosofia"
                - "filosófico"
                - "filosofico"
                - "filosófica"
                - "filosofica"
                - "ontología"
                - "ontologia"
                - "epistemología"
                - "epistemologia"
                - "metafísica"
                - "metafisica"
                - "fenomenología"
                - "fenomenologia"
                - "hermenéutica"
                - "hermeneutica"
                - "ética"
                - "etica"
                - "estética"
                - "estetica"
            - semantic_match:
                examples:
                  - "pensador del idealismo alemán y la dialéctica del espíritu"
                  - "concepto kantiano de cosa en sí y juicio sintético a priori"
                  - "teoría del conocimiento desde la fenomenología"
                  - "problema mente-cuerpo en la filosofía contemporánea"
                  - "la voluntad de poder y el eterno retorno"
                threshold: 0.32
                language: "es"
    classify: disciplina:filosofia
    confidence: 0.85
    explanation: "Consulta sobre filosofía."

  - id: disciplina_sociologia
    when:
      all:
        - any:
            - contains_any:
                - "sociología"
                - "sociologia"
                - "sociológico"
                - "sociologico"
                - "anomia"
                - "clases sociales"
                - "estratificación social"
                - "estratificacion social"
                - "capital social"
                - "habitus"
                - "estructura social"
                - "movimiento social"
                - "control social"
                - "interaccionismo simbólico"
                - "teoría crítica"
            - semantic_match:
                examples:
                  - "estudio de las relaciones entre clases sociales"
                  - "teoría del habitus y el capital cultural"
                  - "anomia durkheimiana y desintegración del lazo social"
                  - "movimientos sociales contemporáneos y acción colectiva"
                  - "desigualdad estructural y reproducción social"
                threshold: 0.32
                language: "es"
    classify: disciplina:sociologia
    confidence: 0.85
    explanation: "Consulta sobre sociología."

  - id: disciplina_psicologia
    when:
      all:
        - any:
            - contains_any:
                - "psicología"
                - "psicologia"
                - "psicológico"
                - "psicologico"
                - "conductismo"
                - "psicoanálisis"
                - "psicoanalisis"
                - "inconsciente"
                - "trastorno mental"
                - "trastornos mentales"
                - "personalidad"
                - "apego"
                - "neurosis"
                - "psicosis"
                - "trauma"
                - "cognitivo-conductual"
                - "psicología social"
                - "psicologia social"
            - semantic_match:
                examples:
                  - "teoría del apego de bowlby y desarrollo infantil"
                  - "psicoanálisis lacaniano y formación del sujeto"
                  - "trastorno por estrés postraumático y memoria"
                  - "sesgos cognitivos en la toma de decisiones"
                threshold: 0.32
                language: "es"
    classify: disciplina:psicologia
    confidence: 0.85
    explanation: "Consulta sobre psicología."

  - id: disciplina_economia
    when:
      all:
        - any:
            - contains_any:
                - "economía"
                - "economia"
                - "macroeconomía"
                - "macroeconomia"
                - "microeconomía"
                - "microeconomia"
                - "inflación"
                - "inflacion"
                - "desempleo"
                - "pib"
                - "producto interior bruto"
                - "política monetaria"
                - "politica monetaria"
                - "tipos de interés"
                - "tipos de interes"
                - "oferta y demanda"
                - "elasticidad"
                - "marxismo económico"
                - "marxismo economico"
                - "keynesianismo"
                - "neoclásica"
                - "neoclasica"
                - "plusvalía"
                - "plusvalia"
            - semantic_match:
                examples:
                  - "modelo keynesiano de demanda agregada y multiplicador"
                  - "función de producción cobb-douglas y rendimientos a escala"
                  - "teoría del valor trabajo y plusvalía en marx"
                  - "política monetaria expansiva y curva de phillips"
                  - "elasticidad precio de la demanda y excedente del consumidor"
                threshold: 0.32
                language: "es"
    classify: disciplina:economia
    confidence: 0.85
    explanation: "Consulta sobre economía."

  - id: disciplina_politica
    when:
      all:
        - any:
            - contains_any:
                - "ciencia política"
                - "ciencia politica"
                - "politólogo"
                - "politologo"
                - "democracia"
                - "totalitarismo"
                - "autoritarismo"
                - "soberanía"
                - "soberania"
                - "soberano"
                - "soberana"
                - "estado de derecho"
                - "constitución"
                - "constitucion"
                - "constituyente"
                - "parlamentarismo"
                - "presidencialismo"
                - "geopolítica"
                - "geopolitica"
                - "ideología política"
                - "ideologia politica"
                - "populismo"
                - "republicanismo"
            - semantic_match:
                examples:
                  - "modelos de democracia representativa y participativa"
                  - "concepto schmittiano de soberanía y excepción"
                  - "proceso constituyente y poder originario"
                  - "transiciones desde el autoritarismo a la democracia"
                threshold: 0.32
                language: "es"
    classify: disciplina:politica-sih
    confidence: 0.85
    explanation: "Consulta sobre ciencia política."

  - id: disciplina_derecho
    when:
      all:
        - any:
            - contains_any:
                - "derecho civil"
                - "derecho penal"
                - "derecho mercantil"
                - "derecho administrativo"
                - "derecho constitucional"
                - "código civil"
                - "codigo civil"
                - "código penal"
                - "codigo penal"
                - "jurisprudencia"
                - "tribunal supremo"
                - "tribunal constitucional"
                - "contrato"
                - "delito"
                - "responsabilidad civil"
                - "tipicidad"
                - "antijuridicidad"
            - semantic_match:
                examples:
                  - "teoría del delito y elementos del tipo penal"
                  - "responsabilidad contractual y extracontractual"
                  - "control de constitucionalidad y supremacía constitucional"
                  - "principio de legalidad y reserva de ley"
                threshold: 0.32
                language: "es"
    classify: disciplina:derecho
    confidence: 0.85
    explanation: "Consulta sobre derecho."

  - id: disciplina_historia
    when:
      all:
        - any:
            - contains_any:
                - "historiografía"
                - "historiografia"
                - "edad media"
                - "edad moderna"
                - "edad contemporánea"
                - "edad contemporanea"
                - "imperio romano"
                - "revolución francesa"
                - "revolucion francesa"
                - "guerra mundial"
                - "segunda república"
                - "segunda republica"
                - "franquismo"
                - "transición española"
                - "transicion espanola"
                - "ilustración"
                - "ilustracion"
                - "renacimiento"
            - semantic_match:
                examples:
                  - "causas y consecuencias de la revolución francesa"
                  - "transición española de la dictadura a la democracia"
                  - "imperio romano y caída del occidente"
                  - "renacimiento italiano y humanismo cívico"
                threshold: 0.32
                language: "es"
    classify: disciplina:historia
    confidence: 0.85
    explanation: "Consulta sobre historia."

  - id: disciplina_arte
    when:
      all:
        - any:
            - contains_any:
                - "historia del arte"
                - "movimiento artístico"
                - "movimiento artistico"
                - "vanguardia"
                - "pintura"
                - "escultura"
                - "arquitectura"
                - "barroco"
                - "renacentista"
                - "impresionismo"
                - "cubismo"
                - "surrealismo"
                - "expresionismo"
                - "iconografía"
                - "iconografia"
            - semantic_match:
                examples:
                  - "iconografía cristiana del románico al gótico"
                  - "ruptura cubista con la perspectiva renacentista"
                  - "técnicas pictóricas del impresionismo"
                  - "arquitectura de las catedrales góticas"
                threshold: 0.32
                language: "es"
    classify: disciplina:arte
    confidence: 0.85
    explanation: "Consulta sobre arte."

  - id: disciplina_literatura
    when:
      all:
        - any:
            - contains_any:
                - "literatura española"
                - "literatura espanola"
                - "literatura hispanoamericana"
                - "siglo de oro"
                - "generación del 98"
                - "generacion del 98"
                - "generación del 27"
                - "generacion del 27"
                - "boom latinoamericano"
                - "novela picaresca"
                - "soneto"
                - "narrador omnisciente"
                - "realismo mágico"
                - "realismo magico"
                - "vanguardia literaria"
                - "métrica"
                - "metrica"
            - semantic_match:
                examples:
                  - "rasgos del realismo mágico en la narrativa hispanoamericana"
                  - "la generación del 27 y la modernización del lenguaje poético"
                  - "rasgos de la novela picaresca del siglo de oro"
                  - "función del narrador en la novela contemporánea"
                threshold: 0.32
                language: "es"
    classify: disciplina:literatura
    confidence: 0.85
    explanation: "Consulta sobre literatura."

  - id: disciplina_linguistica
    when:
      all:
        - any:
            - contains_any:
                - "lingüística"
                - "linguistica"
                - "sintaxis"
                - "morfología"
                - "morfologia"
                - "fonética"
                - "fonetica"
                - "fonología"
                - "fonologia"
                - "semántica"
                - "semantica"
                - "pragmática"
                - "pragmatica"
                - "lexicografía"
                - "lexicografia"
                - "etimología"
                - "etimologia"
                - "gramática generativa"
                - "gramatica generativa"
                - "saussure"
                - "chomsky"
            - semantic_match:
                examples:
                  - "diferencia entre lengua y habla en saussure"
                  - "estructura profunda y superficial en chomsky"
                  - "pragmática del lenguaje y actos de habla"
                  - "fonología generativa y rasgos distintivos"
                threshold: 0.32
                language: "es"
    classify: disciplina:linguistica
    confidence: 0.85
    explanation: "Consulta sobre lingüística."

  - id: disciplina_matematica_estadistica
    when:
      all:
        - any:
            - contains_any:
                - "estadística"
                - "estadistica"
                - "probabilidad"
                - "distribución normal"
                - "distribucion normal"
                - "varianza"
                - "desviación típica"
                - "desviacion tipica"
                - "regresión"
                - "regresion"
                - "correlación"
                - "correlacion"
                - "teorema"
                - "demostración"
                - "demostracion"
                - "integral"
                - "derivada"
                - "matriz"
                - "vector"
                - "bayes"
                - "intervalo de confianza"
                - "test de hipótesis"
                - "test de hipotesis"
            - semantic_match:
                examples:
                  - "interpretación frecuentista versus bayesiana de la probabilidad"
                  - "regresión lineal y cuadrados mínimos"
                  - "teorema central del límite y su uso en inferencia"
                  - "contraste de hipótesis y error de tipo i y tipo ii"
                threshold: 0.32
                language: "es"
    classify: disciplina:matematica-y-estadistica
    confidence: 0.85
    explanation: "Consulta sobre matemáticas o estadística."

  - id: disciplina_geografia
    when:
      all:
        - any:
            - contains_any:
                - "geografía física"
                - "geografia fisica"
                - "geografía humana"
                - "geografia humana"
                - "geomorfología"
                - "geomorfologia"
                - "climatología"
                - "climatologia"
                - "demografía"
                - "demografia"
                - "cartografía"
                - "cartografia"
                - "urbanismo"
                - "región"
                - "regiones naturales"
                - "biogeografía"
                - "biogeografia"
            - semantic_match:
                examples:
                  - "regiones climáticas de la península ibérica"
                  - "modelos de transición demográfica"
                  - "geomorfología fluvial y procesos erosivos"
                  - "geografía urbana y modelos de ciudad"
                threshold: 0.32
                language: "es"
    classify: disciplina:geografia
    confidence: 0.85
    explanation: "Consulta sobre geografía."

  - id: disciplina_antropologia
    when:
      all:
        - any:
            - contains_any:
                - "antropología"
                - "antropologia"
                - "etnografía"
                - "etnografia"
                - "parentesco"
                - "tabú"
                - "tabu"
                - "rito de paso"
                - "estructuralismo antropológico"
                - "estructuralismo antropologico"
                - "lévi-strauss"
                - "levi-strauss"
                - "trabajo de campo"
                - "cultura material"
            - semantic_match:
                examples:
                  - "estructuras elementales del parentesco según lévi-strauss"
                  - "rito de paso en la teoría de van gennep"
                  - "etnografía como método de la antropología social"
                  - "relativismo cultural y crítica al etnocentrismo"
                threshold: 0.32
                language: "es"
    classify: disciplina:antropologia
    confidence: 0.85
    explanation: "Consulta sobre antropología."

  - id: disciplina_arqueologia
    when:
      all:
        - any:
            - contains_any:
                - "arqueología"
                - "arqueologia"
                - "yacimiento"
                - "estratigrafía"
                - "estratigrafia"
                - "datación"
                - "datacion"
                - "carbono 14"
                - "neolítico"
                - "neolitico"
                - "paleolítico"
                - "paleolitico"
                - "edad del bronce"
                - "edad del hierro"
                - "cultura material prehistórica"
                - "cultura material prehistorica"
            - semantic_match:
                examples:
                  - "métodos de datación por carbono 14 y termoluminiscencia"
                  - "transición del paleolítico al neolítico"
                  - "estratigrafía arqueológica y secuencia cultural"
                  - "interpretación funcional de la cultura material"
                threshold: 0.32
                language: "es"
    classify: disciplina:arqueologia
    confidence: 0.85
    explanation: "Consulta sobre arqueología."

  - id: disciplina_empresa
    when:
      all:
        - any:
            - contains_any:
                - "administración de empresas"
                - "administracion de empresas"
                - "contabilidad"
                - "balance contable"
                - "marketing"
                - "estrategia empresarial"
                - "recursos humanos"
                - "logística empresarial"
                - "logistica empresarial"
                - "dirección de empresas"
                - "direccion de empresas"
                - "kpi"
                - "porter"
                - "ventaja competitiva"
            - semantic_match:
                examples:
                  - "modelo de las cinco fuerzas de porter"
                  - "estados financieros y análisis del balance"
                  - "estrategia de diferenciación frente a liderazgo en costes"
                  - "marketing mix y posicionamiento de marca"
                threshold: 0.32
                language: "es"
    classify: disciplina:empresa
    confidence: 0.85
    explanation: "Consulta sobre administración de empresas."

  - id: disciplina_fotografia
    when:
      all:
        - any:
            - contains_any:
                - "fotografía"
                - "fotografia"
                - "fotográfico"
                - "fotografico"
                - "fotoperiodismo"
                - "diafragma"
                - "obturador"
                - "exposición fotográfica"
                - "exposicion fotografica"
                - "revelado"
                - "blanco y negro"
                - "henri cartier-bresson"
                - "fotografía documental"
                - "fotografia documental"
            - semantic_match:
                examples:
                  - "relación entre apertura, velocidad de obturación e iso"
                  - "fotografía documental humanista de mediados del siglo xx"
                  - "el momento decisivo según cartier-bresson"
                  - "técnica del zona de ansel adams"
                threshold: 0.32
                language: "es"
    classify: disciplina:fotografia
    confidence: 0.85
    explanation: "Consulta sobre fotografía."

  - id: disciplina_documentacion
    when:
      all:
        - any:
            - contains_any:
                - "biblioteconomía"
                - "biblioteconomia"
                - "archivística"
                - "archivistica"
                - "documentación"
                - "documentacion"
                - "catalogación"
                - "catalogacion"
                - "clasificación decimal"
                - "clasificacion decimal"
                - "metadatos"
                - "thesaurus"
                - "ontología documental"
                - "ontologia documental"
            - semantic_match:
                examples:
                  - "clasificación decimal de dewey y sistemas alternativos"
                  - "tratamiento documental y descripción archivística"
                  - "metadatos dublin core y catalogación automatizada"
                  - "gestión de documentos electrónicos y preservación digital"
                threshold: 0.32
                language: "es"
    classify: disciplina:ciencias-de-la-documentacion
    confidence: 0.85
    explanation: "Consulta sobre ciencias de la documentación."

  - id: disciplina_educacion
    when:
      all:
        - any:
            - contains_any:
                - "pedagogía"
                - "pedagogia"
                - "didáctica"
                - "didactica"
                - "currículo escolar"
                - "curriculo escolar"
                - "constructivismo"
                - "aprendizaje significativo"
                - "evaluación educativa"
                - "evaluacion educativa"
                - "educación primaria"
                - "educacion primaria"
                - "educación secundaria"
                - "educacion secundaria"
                - "freire"
                - "piaget"
                - "vygotsky"
            - semantic_match:
                examples:
                  - "teoría del aprendizaje significativo de ausubel"
                  - "constructivismo piagetiano y desarrollo cognitivo"
                  - "pedagogía del oprimido de freire"
                  - "diseño curricular por competencias"
                threshold: 0.32
                language: "es"
    classify: disciplina:ciencias-de-la-educacion
    confidence: 0.85
    explanation: "Consulta sobre ciencias de la educación."

  # ============================================================
  # ===================== FORMA / FORMATO ======================
  # ============================================================

  - id: forma_formula_matematica
    when:
      all:
        - language_is: ["es"]
        - any:
            - contains_any:
                - "fórmula"
                - "formula"
                - "ecuación"
                - "ecuacion"
                - "expresión matemática"
                - "expresion matematica"
            - regex: "(?ui)[a-zα-ωΑ-Ω]\\s*=\\s*[a-zα-ωΑ-Ω0-9]"
    classify: forma:formula
    confidence: 0.75
    explanation: "El lector espera una fórmula matemática como respuesta."

  # ============================================================
  # ============== SEÑALES DE QUERY DEGRADADA ==================
  # ============================================================

  - id: forma_consulta_corta
    when:
      max_length: 2
    classify: forma:lema
    confidence: 0.7
    explanation: "Consulta de 1–2 palabras: probablemente un lema directo del corpus."

  - id: forma_consulta_larga
    when:
      chars: { min: 120 }
    classify: forma:pregunta_libre
    confidence: 0.7
    explanation: "Consulta extensa: tratarla como pregunta abierta, no como query keyword."

default:
  classify: intencion:general
  confidence: 1.0
