SKILL.md: Razonamiento de Intervalos Temporales (Allen 1983)
Cuándo Usar Esta Habilidad
Carga esta habilidad cuando encuentres:
| Situación Desencadenante | Por Qué Allen Aplica |
|---|---|
| "¿La tarea A termina antes de que comience la tarea B?" | Requiere clasificación de relaciones de intervalo (antes, encuentra, solapa…) |
| "No sé exactamente cuándo ocurrió X, solo que fue durante Y" | Incertidumbre disyuntiva sobre las 13 relaciones |
| "Si añadimos esta restricción, ¿el horario sigue funcionando?" | Propagación de restricciones + detección de inconsistencia |
| "El evento A ocurre a diario; el evento B ocurre anualmente — ¿cómo interactúan?" | Jerarquía de intervalos de referencia para gestión de ámbito |
No uses si solo necesitas comparar dos marcas de tiempo absolutas sin incertidumbre — la aritmética simple es suficiente.
Puntos de Decisión
Nueva Afirmación Temporal Añadida
SI la afirmación entra en conflicto con restricciones existentes:
→ Detectar etiqueta de arco vacía durante la propagación
→ DETENERSE inmediatamente, informar del par de intervalos inconsistente
→ NO continuar con estado inconsistente
SI la afirmación es consistente:
→ Ejecutar propagación de restricciones desde los arcos afectados
→ Actualizar etiquetas intersectando consecuencias de transitividad
→ Continuar hasta que no sean posibles más refinamientos
Manejo de Incertidumbre Temporal
SI la evidencia solo soporta múltiples relaciones:
→ Mantener etiqueta disyuntiva completa {antes, encuentra, solapa}
→ Nunca colapsar a una sola relación sin evidencia
→ Registrar cuándo/por qué se reduce el conjunto de restricciones
SI se debe actuar bajo incertidumbre:
→ Usar la etiqueta disyuntiva tal cual para la planificación
→ Etiquetar cualquier suposición como refutable
→ Evitar compromiso prematuro
Ámbito del Razonamiento Temporal
SI se trata con eventos en escalas temporales muy diferentes:
→ Identificar jerarquía de intervalos de referencia (año→mes→día)
→ Razonar dentro de cada grupo por separado
→ Crear restricciones puente explícitas en los límites
→ Evitar aplanar todo en un único grafo global
SI el razonamiento local parece suficiente:
→ Verificar que el ámbito de la consulta coincida con el nivel del intervalo de referencia
→ Propagar solo dentro del grupo relevante
→ Escalar entre grupos solo cuando se detecte una dependencia
Persistencia de Estado
SI el estado continúa sin un límite final explícito:
→ Aplicar valor predeterminado de persistencia Y marcar como refutable
→ Cualquier afirmación futura de límite final anula el valor predeterminado
→ Nunca tratar el supuesto de persistencia como una restricción dura
SI se proporciona un límite temporal explícito:
→ Anular cualquier valor predeterminado de persistencia existente
→ Propagar la nueva restricción normalmente
Modos de Fracaso
| Anti-Patrón | Síntoma | Diagnóstico | Solución |
|---|---|---|---|
| Puntificación | Reducir eventos a marcas de tiempo, perdiendo información de solapamiento/contención | Usar hora=14:30 en lugar de intervalos [14:30, 14:45] | Modelar cada evento como intervalo con inicio/fin, incluso si la duración es desconocida |
| Compromiso Prematuro | Elegir una única relación cuando la evidencia soporta múltiples | Afirmar "antes" cuando solo se sabe "no durante" | Mantener etiqueta disyuntiva completa hasta que la evidencia obligue a reducirla |
| Bomba de Propagación Global | Coste O(N²) por actualización, el rendimiento degrada con el tamaño de la KB | Ejecutar propagación de restricciones en todo el grafo para una consulta local | Usar jerarquía de intervalos de referencia para limitar el ámbito de propagación |
| Negación de Etiqueta Vacía | Continuar razonando después de detectar inconsistencia | Obtener resultados sin sentido porque se ignoraron restricciones conflictivas | Tratar la etiqueta de arco vacía como ÉXITO (inconsistencia detectada temprano), detenerse inmediatamente |
| Rigidez de Persistencia | No se pueden anular los supuestos de "continúa hasta que cambie" | Nuevos límites temporales rechazados por conflicto con persistencia | Etiquetar todos los valores predeterminados de persistencia como refutables, permitir anulación por afirmaciones explícitas |
Reglas de Detección:
- Si ves marcas de tiempo sin duración → Puntificación
- Si ves una única relación elegida arbitrariamente → Compromiso Prematuro
- Si el coste de propagación crece con el tamaño total de la KB → Bomba de Propagación Global
- Si el razonamiento continúa después de una etiqueta vacía → Negación de Etiqueta Vacía
- Si nuevos hechos temporales son rechazados → Rigidez de Persistencia
Ejemplos Prácticos
Ejemplo 1: Detección de Conflictos en Horarios de Reuniones
Escenario: Agregar "Revisión de Equipo" al calendario que ya tiene "Llamada con Cliente" y "Reunión Diaria de Ingeniería"
Estado Inicial:
Llamada con Cliente (I₁): [10:00, 11:00]
Reunión Diaria de Ingeniería (I₂): [11:30, 12:00]
Conocido: I₁ {antes} I₂
Nueva Afirmación: Revisión de Equipo (I₃): [10:45, 11:15]
Traza de Razonamiento Experto:
-
Clasificar nuevas relaciones:
- I₃ vs I₁: comienza a las 10:45, I₁ termina a las 11:00 → {solapa}
- I₃ vs I₂: termina a las 11:15, I₂ comienza a las 11:30 → {antes}
-
Propagación de restricciones:
- De I₁ {antes} I₂ e I₃ {solapa} I₁
- Transitividad: solapa ∘ antes = {antes, solapa, encuentra, inicia, durante}
- Nueva restricción: I₃ {antes, solapa, encuentra, inicia, durante} I₂
- Intersectar con I₃ {antes} I₂: la etiqueta se reduce a {antes}
-
Verificación de consistencia: Todas las etiquetas no vacías → El horario es factible pero hay solapamiento
Lo que el Novato Pasaría por Alto:
- Podría no verificar que el solapamiento de I₃ con I₁ crea un conflicto de recursos
- Podría no verificar que la transitividad mantenga la consistencia
- Podría no distinguir entre "orden factible" y "sin conflictos de recursos"
El Experto Detecta:
- El solapamiento se detecta inmediatamente mediante clasificación de relaciones
- La propagación verifica que la consistencia global se mantiene
- Distinción clara entre factibilidad temporal y disponibilidad de recursos
Ejemplo 2: Dependencias de Fases de Proceso
Escenario: Pipeline de despliegue con tiempos de finalización de tarea inciertos
Estado Inicial:
Fase de Compilación (B): duración desconocida, debe terminar antes de Despliegue
Fase de Pruebas (T): se solapa con el final de Compilación, duración incierta
Fase de Despliegue (D): comienza después de que B y T hayan completado
Red de Restricciones:
T {solapa, termina} B (Las pruebas pueden terminar con o antes de la compilación)
B {antes, encuentra} D (La compilación debe completarse antes del despliegue)
T {antes, encuentra} D (Las pruebas deben completarse antes del despliegue)
Nueva Información: "Las pruebas encontraron un error crítico, extendiéndose 2 horas"
Razonamiento Experto:
- La actualización afecta el ámbito: La extensión de las pruebas retrasa el punto final de T
- Propagación: Si T {termina} B originalmente, ahora T {solapa} B (se extiende más allá del final de Compilación)
- Verificar consistencia: T {solapa} B aún permite B {antes, encuentra} D y T {antes, encuentra} D
- Resultado: Despliegue retrasado pero la lógica del pipeline sigue intacta
Lo que el Novato Pasaría por Alto:
- Podría asumir que la finalización de las pruebas no afecta la dependencia Compilación-Despliegue
- Podría no propagar la extensión de las pruebas al momento del Despliegue
- Podría tratar "las pruebas se extienden" como un hecho aislado en lugar de una actualización de la red de restricciones
El Experto Detecta:
- Reconoce que la relación Pruebas-Compilación debe reevaluarse
- Propaga las implicaciones temporales a través de toda la red de restricciones
- Mantiene la incertidumbre de manera adecuada (el Despliegue podría comenzar inmediatamente después de Compilación O después de las Pruebas extendidas)
Puertas de Calidad
La tarea de razonamiento temporal está completa cuando:
- Todos los intervalos representados con límites de inicio/fin explícitos (sin eventos puntuales)
- Cada par de intervalos tiene una etiqueta de arco no vacía del vocabulario de 13 relaciones
- Propagación de restricciones ejecutada hasta completarse (sin actualizaciones de transitividad pendientes)
- Todas las etiquetas disyuntivas reflejan honestamente la evidencia actual (sin compromisos arbitrarios)
- Jerarquía de intervalos de referencia establecida para razonamiento multiescala
- Valores predeterminados de persistencia etiquetados como refutables cuando corresponda
- Verificación de detección de inconsistencia (etiquetas vacías capturadas e informadas)
- Puentes de ámbito de referencia cruzados definidos explícitamente
- Todas las afirmaciones temporales rastreadas hasta la fuente de evidencia
- El ámbito de la consulta coincide con el nivel de granularidad del razonamiento
Límites (NO USAR)
NO uses el álgebra de intervalos de Allen para:
- Comparación simple de marcas de tiempo → Usa aritmética:
if (t1 < t2) - Cálculo de duración métrica → Usa aritmética de calendario:
fecha_fin - fecha_inicio - Optimización de planificación en tiempo real → Usa satisfacción de restricciones con dominios numéricos
- Inferencia temporal probabilística → Usa redes temporales probabilísticas
- Dinámicas de tiempo continuo → Usa ecuaciones diferenciales
- Flujos de eventos de alta frecuencia → Usa marcos de procesamiento de flujos
Delegar en su lugar:
- Para restricciones métricas: Usa satisfacción-de-restricciones-con-dominios-numéricos
- Para razonamiento temporal probabilístico: Usa redes-temporales-bayesianas
- Para sistemas en tiempo real: Usa planificación-monotónica-de-tasa
- Para dinámicas continuas: Usa verificación-de-lógica-temporal
- Para procesamiento de flujos de eventos: Usa procesamiento-de-eventos-complejos
Allen destaca en: Razonamiento temporal cualitativo bajo incertidumbre con actualizaciones incrementales de conocimiento y gestión jerárquica del ámbito.