SKILL.md: Raciocínio Temporal por Intervalos (Allen 1983)
Quando Usar Esta Skill
Carregue esta skill quando encontrar:
| Situação de Gatilho | Por que Allen se Aplica |
|---|---|
| "A tarefa A termina antes da tarefa B começar?" | Requer classificação de relações entre intervalos (antes, encontra, sobrepõe…) |
| "Não sei exatamente quando X aconteceu, apenas que foi durante Y" | Incerteza disjuntiva sobre as 13 relações |
| "Se adicionarmos esta restrição, o cronograma ainda funciona?" | Propagação de restrições + detecção de inconsistências |
| "O evento A ocorre diariamente; o evento B ocorre anualmente — como eles interagem?" | Hierarquia de intervalos de referência para gerenciamento de escopo |
Não use se você só precisa comparar dois carimbos de data/hora absolutos sem incerteza — aritmética simples é suficiente.
Pontos de Decisão
Nova Afirmação Temporal Adicionada
SE a afirmação conflita com restrições existentes:
→ Detecta rótulo de arco vazio durante a propagação
→ PARE imediatamente, reporte o par de intervalos inconsistente
→ NÃO continue com estado inconsistente
SE a afirmação é consistente:
→ Execute propagação de restrições a partir dos arcos afetados
→ Atualize rótulos intersectando consequências de transitividade
→ Continue até que nenhum refinamento adicional seja possível
Lidando com Incerteza Temporal
SE as evidências suportam apenas relações múltiplas:
→ Mantenha o rótulo disjuntivo completo {antes, encontra, sobrepõe}
→ Nunca colapse para uma única relação sem evidência
→ Registre quando/por que o conjunto de restrições se estreita
SE forçado a agir sob incerteza:
→ Use o rótulo disjuntivo como está para o planejamento
→ Marque quaisquer suposições como revogáveis
→ Evite comprometimento precoce
Escopo do Raciocínio Temporal
SE lidando com eventos em escalas de tempo vastamente diferentes:
→ Identifique a hierarquia de intervalos de referência (ano→mês→dia)
→ Raciocine dentro de cada cluster separadamente
→ Crie restrições de ponte explícitas nos limites
→ Evite achatar tudo em um único grafo global
SE o raciocínio local parecer suficiente:
→ Verifique se o escopo da consulta corresponde ao nível do intervalo de referência
→ Propague apenas dentro do cluster relevante
→ Escale para cross-cluster apenas quando uma dependência for detectada
Persistência de Estado
SE o estado continua sem um limite final explícito:
→ Aplique o padrão de persistência E marque como revogável
→ Qualquer afirmação futura de limite final substitui o padrão
→ Nunca trate a suposição de persistência como uma restrição rígida
SE um limite temporal explícito for fornecido:
→ Substitua quaisquer padrões de persistência existentes
→ Propague a nova restrição normalmente
Modos de Falha
| Anti-Padrão | Sintoma | Diagnóstico | Correção |
|---|---|---|---|
| Pontificação | Reduzir eventos a carimbos de data/hora, perdendo informações de sobreposição/contém | Usar time=14:30 em vez de intervalos [14:30, 14:45] | Modele todo evento como intervalo com início/fim, mesmo se a duração for desconhecida |
| Comprometimento Precoce | Escolher uma única relação quando as evidências suportam múltiplas | Afirmar "antes" quando você sabe apenas "não durante" | Mantenha o rótulo disjuntivo completo até que as evidências forcem o estreitamento |
| Bomba de Propagação Global | Custo O(N²) por atualização, desempenho degrada com o tamanho da base de conhecimento | Executar propagação de restrições em todo o grafo para uma consulta local | Use hierarquia de intervalos de referência para limitar o escopo da propagação |
| Negação de Rótulo Vazio | Continuar raciocinando após a detecção de inconsistência | Obter resultados sem sentido porque restrições conflitantes foram ignoradas | Trate rótulo de arco vazio como SUCESSO (inconsistência detectada cedo), pare imediatamente |
| Rigidez de Persistência | Não é possível substituir suposições "continua até mudar" | Novos limites temporais rejeitados porque conflitam com a persistência | Marque todos os padrões de persistência como revogáveis, permita substituição por afirmações explícitas |
Regras de Detecção:
- Se você vir carimbos de data/hora sem duração → Pontificação
- Se você vir uma única relação escolhida arbitrariamente → Comprometimento Precoce
- Se o custo de propagação crescer com o tamanho total da base de conhecimento → Bomba de Propagação Global
- Se o raciocínio continuar após um rótulo vazio → Negação de Rótulo Vazio
- Se novos fatos temporais forem rejeitados → Rigidez de Persistência
Exemplos Práticos
Exemplo 1: Detecção de Conflito em Agenda de Reunião
Cenário: Adicionando "Revisão da Equipe" ao calendário que já tem "Chamada com Cliente" e "Standup de Engenharia"
Estado Inicial:
Chamada com Cliente (I₁): [10:00, 11:00]
Standup de Engenharia (I₂): [11:30, 12:00]
Conhecido: I₁ {antes} I₂
Nova Afirmação: Revisão da Equipe (I₃): [10:45, 11:15]
Rastreamento do Raciocínio do Especialista:
-
Classifique as novas relações:
- I₃ vs I₁: começa às 10:45, I₁ termina às 11:00 → {sobrepõe}
- I₃ vs I₂: termina às 11:15, I₂ começa às 11:30 → {antes}
-
Propagação de restrições:
- De I₁ {antes} I₂ e I₃ {sobrepõe} I₁
- Transitividade: sobrepõe ∘ antes = {antes, sobrepõe, encontra, começa, durante}
- Nova restrição: I₃ {antes, sobrepõe, encontra, começa, durante} I₂
- Intersecção com I₃ {antes} I₂: rótulo se torna {antes}
-
Verificação de consistência: Todos os rótulos não vazios → Cronograma é viável, mas há sobreposição
Novato Perderia:
- Pode não verificar que a sobreposição de I₃ com I₁ cria conflito de recursos
- Pode não verificar que a transitividade mantém a consistência
- Pode não distinguir "ordenação viável" de "sem conflitos de recursos"
Especialista Percebe:
- Detecção de sobreposição sinalizada imediatamente via classificação de relação
- Propagação verifica que a consistência global é mantida
- Distinção clara entre viabilidade temporal e disponibilidade de recursos
Exemplo 2: Dependências de Fases de Processo
Cenário: Pipeline de implantação com tempos de conclusão de tarefas incertos
Estado Inicial:
Fase de Build (B): duração desconhecida, deve terminar antes da Implantação
Fase de Teste (T): sobrepõe-se ao final do Build, duração incerta
Fase de Implantação (D): começa após B e T completarem
Rede de Restrições:
T {sobrepõe, termina} B (Teste pode terminar junto ou antes do Build)
B {antes, encontra} D (Build deve completar antes da Implantação)
T {antes, encontra} D (Teste deve completar antes da Implantação)
Nova Informação: "Teste encontrou bug crítico, estendendo por 2 horas"
Raciocínio do Especialista:
- Atualização afeta o escopo: Extensão do Teste empurra o ponto final de T para mais tarde
- Propagação: Se T {termina} B originalmente, agora T {sobrepõe} B (estende-se além do fim do Build)
- Verificação de consistência: T {sobrepõe} B ainda permite B {antes, encontra} D e T {antes, encontra} D
- Resultado: Implantação atrasada, mas lógica do pipeline intacta
Novato Perderia:
- Pode presumir que a conclusão do Teste não afeta a dependência Build-Implantação
- Pode não propagar a extensão do Teste através do tempo da Implantação
- Pode tratar "Teste se estende" como fato isolado em vez de atualização da rede de restrições
Especialista Percebe:
- Reconhece que a relação Teste-Build deve ser reavaliada
- Propaga implicações de tempo através de toda a rede de restrições
- Mantém a incerteza apropriadamente (Implantação pode começar imediatamente após o Build OU após o Teste estendido)
Portões de Qualidade
A tarefa de raciocínio temporal está completa quando:
- Todos os intervalos representados com limites início/fim explícitos (sem eventos pontuais)
- Cada par de intervalos tem um rótulo de arco não vazio do vocabulário de 13 relações
- Propagação de restrições executada até a conclusão (sem atualizações de transitividade pendentes)
- Todos os rótulos disjuntivos refletem honestamente as evidências atuais (sem compromissos arbitrários)
- Hierarquia de intervalos de referência estabelecida para raciocínio multi-escala
- Padrões de persistência marcados como revogáveis onde aplicável
- Detecção de inconsistência verificada (rótulos vazios capturados e reportados)
- Pontes de escopo de referência cruzada explicitamente definidas
- Todas as afirmações temporais rastreadas até a fonte de evidência
- Escopo da consulta corresponde ao nível de granularidade do raciocínio
Limites de NÃO-APLICABILIDADE
NÃO use a álgebra de intervalos de Allen para:
- Comparação simples de carimbos de data/hora → Use aritmética:
if (t1 < t2) - Cálculo de duração métrica → Use aritmética de calendário:
data_fim - data_inicio - Otimização de agendamento em tempo real → Use satisfação de restrições com domínios numéricos
- Inferência temporal probabilística → Use redes temporais probabilísticas
- Dinâmica de tempo contínuo → Use equações diferenciais
- Fluxos de eventos de alta frequência → Use frameworks de processamento de fluxo
Delegue em vez disso:
- Para restrições métricas: Use satisfação-de-restrições-com-domínios-numéricos
- Para raciocínio temporal probabilístico: Use redes-temporais-bayesianas
- Para sistemas em tempo real: Use escalonamento-monotônico-de-taxa
- Para dinâmica contínua: Use verificação-de-modelo-de-lógica-temporal
- Para processamento de fluxo de eventos: Use processamento-complexo-de-eventos
Allen se destaca em: Raciocínio temporal qualitativo sob incerteza com atualizações incrementais de conhecimento e gerenciamento de escopo hierárquico.