Skip to content

suissa/purecore-temporal-graph

Repository files navigation

TemporalGraph TS

📌 Visão Geral

TemporalGraph TS é uma biblioteca TypeScript projetada para modelar, analisar e visualizar redes temporais, grafos em que as conexões possuem duração no tempo, permitindo representar sistemas reais de forma dinâmica, contextual e historicamente consistente.

Enquanto grafos tradicionais representam relações estáticas, um Temporal Graph modela relações que nascem, duram e morrem ao longo do tempo. Isso permite análises impossíveis em grafos comuns, como:

  • ritmo de interações
  • recorrência
  • intensidade temporal
  • caminhos ordenados no tempo
  • sobreposição de eventos
  • aceleração / desaceleração
  • períodos de inatividade
  • padrões de burstiness
  • ciclos temporais válidos
  • evolução dinâmica de clusters

Essa lib fornece:

  • Grafo temporal completo baseado em intervalos
  • Conjunto enorme de métricas estruturais, semânticas e temporais
  • Ferramentas de visualização (Plotly)
  • Geração de dataset sintético
  • Arquitetura modular (metrics/*)
  • Compatível com GraphRAG / Temporal Graph RAG
  • Uso genérico (não acoplado a WhatsApp ou CRM)

🧠 O Que é um Temporal Graph?

Um grafo tradicional é definido como:

G = (V, E)

Um Temporal Graph baseado em intervalos é:

Gₜ = (V, Eₜ)
Eₜ = { (u, v, [t_inicio, t_fim]) }

Onde cada aresta possui um intervalo de ativação:

  • activated_at: quando a relação começa
  • deactivated_at: quando termina (ou permanece aberta)

Isso transforma o grafo em uma estrutura dinâmica que evolui no tempo.


🎯 Por Que Usar Grafos Temporais?

✔ Representam o mundo real

O mundo é dinâmico: conversas, eventos, ações, sensores, microserviços, leads, tudo ocorre em uma sequência temporal.

Grafos estáticos matam a narrativa.

Grafos temporais preservam o filme, não só a foto.

🔥 Benefícios Práticos

🔹 Analisar interações reais

Whatsapp, CRM, e-commerce, suporte, IoT, microserviços.

🔹 Descobrir padrões temporais

Bursts, quedas, travamentos, escaladas de atividade.

🔹 Entender processos

Fluxo temporal → causa e efeito → caminhos válidos.

🔹 Base perfeita para IA

LLMs conseguem raciocinar melhor sobre dados temporais estruturados.

🧩 Estrutura da Biblioteca

src/
  temporalGraph.ts
  metrics/
    nodeMetrics.ts
    edgeMetrics.ts
    graphMetrics.ts
    temporalMetrics.ts
examples/
  generateSyntheticTemporalGraph.ts
  computeTemporalMetricsFromSynthetic.ts
visualizations/
  temporal_metrics.json
  temporal_metrics_plot.html

📦 Instalação

npm install temporal-graph-ts

API Principal: TemporalGraph

🔹 TemporalNode

interface TemporalNode<T = any> {
  id: string
  data: T
}

🔹 TemporalEdge

interface TemporalEdge<T = any> {
  id: string
  from: string
  to: string
  created_at: number
  activated_at: number
  deactivated_at?: number
  data?: T
}

🔹 Criando um grafo temporal

import { TemporalGraph } from "temporal-graph-ts"

interface User { id: string; name: string }

const graph = new TemporalGraph<User, any>(u => u.id)

graph.insertNode({ id: "alice", name: "Alice" })
graph.insertNode({ id: "bob", name: "Bob" })

graph.addTemporalEdge("alice", "bob", Date.now())

🧪 Consultas Temporais

graph.getActiveEdgesAt(time)
graph.getEdgesInInterval(t0, t1)
graph.temporalShortestPath("alice", "carol")
graph.getOutgoingEdges("alice")
graph.getAllNodes()
graph.getAllEdges()

📊 Métricas

A biblioteca inclui mais de 25 métricas temporais, separadas em módulos:


Node Metrics

Imports:

import {
  temporalDegree,
  nodeLifespan,
  nodeBurstiness
} from "temporal-graph-ts/metrics/nodeMetrics"

Métricas:

  • Grau temporal
  • Tempo de vida da atividade
  • Burstiness (Barabási)

Edge Metrics

Imports:

import {
  edgeDuration,
  averageEdgeDurationBetween,
  edgeRecurrence
} from "temporal-graph-ts/metrics/edgeMetrics"

Métricas:

  • Duração de intervalos
  • Recorrência
  • Estabilidade

Graph Metrics

Imports:

import {
  temporalDensity,
  edgeOverlapCount,
  interactionVelocity
} from "temporal-graph-ts/metrics/graphMetrics"

Métricas:

  • Densidade temporal
  • Overlap global
  • Velocidade de interação

Temporal Metrics (mais importantes)

Imports:

import {
  activeEdgeCountAt,
  totalActiveTime,
  averageActiveDuration,
  activationsInInterval,
  deactivationsInInterval,
  graphAliveRatio,
  temporalAcceleration,
  temporalSnapshot,
  temporalIntensity,
  activationRhythm,
  temporalOverlapRatio,
  temporalChangeRate
} from "temporal-graph-ts/metrics/temporalMetrics"

Métricas:

  • Intensidade temporal
  • Ritmo de ativações
  • Mudança temporal
  • Overlap temporal
  • Snapshot temporal
  • Tempo ativo acumulado
  • Ativações/Desativações

Explicação das Métricas do TemporalGraph TS (Uso no Mundo Real)

1. Grau Temporal (temporalDegree)

O que é

Número de conexões ativas de um nó dentro de um intervalo de tempo.

Como interpretar

Determina a relevância temporal do nó.

Usos reais

  • WhatsApp: quantos clientes falaram com o atendente nas últimas horas.
  • CRM: leads mais ativos.
  • Suporte: agentes com maior carga.
  • IoT: dispositivo enviando múltiplos eventos.

2. Tempo de Vida da Atividade (nodeLifespan)

O que é

Tempo entre a primeira e a última interação do nó.

Usos reais

  • Detectar leads que sumiram.
  • Medir vida útil de sensores.
  • Analisar tempo de engajamento em jornadas.

3. Burstiness (Barabási)

O que é

Mede irregularidade de comportamento.

Usos reais

  • Leads impulsivos (resposta rápida em surtos).
  • Fraudes (padrões regulares e robóticos).
  • Emoção em conversas (mensagens longas + picos).

4. Duração de Intervalos (edgeDuration)

O que é

Quanto tempo uma relação ficou ativa.

Usos reais

  • Sessões de conversa.
  • Tempo conectado entre microserviços.
  • Quanto um cliente permaneceu ativo.

5. Recorrência (edgeRecurrence)

O que é

Quantas vezes a relação reapareceu.

Usos reais

  • Leads que voltam repetidamente.
  • Suporte recorrente.
  • Padrões comportamentais de retorno.

6. Estabilidade (averageEdgeDurationBetween)

O que é

Duração média entre duas entidades ao longo do tempo.

Usos reais

  • Medir estabilidade Cliente ↔ Vendedor.
  • Confiabilidade entre serviços.
  • Duração média de interação.

7. Densidade Temporal (temporalDensity)

O que é

Quão conectado o grafo está em uma janela temporal.

Usos reais

  • Identificar horas de pico.
  • Analisar carga de operação.
  • Mapear períodos de engajamento.

8. Overlap Global (edgeOverlapCount)

O que é

Quantas relações existiram simultaneamente.

Usos reais

  • Congestionamento no atendimento.
  • Requisições simultâneas.
  • Momentos caóticos ou críticos.

9. Velocidade de Interação (interactionVelocity)

O que é

Quantidade de interações criadas por minuto.

Usos reais

  • Leads quentes (resposta rápida).
  • SLAs de suporte.
  • Ritmos em redes sociais.

10. Intensidade Temporal (temporalIntensity)

O que é

Quantidade de eventos por minuto.

Usos reais

  • Horários de maior propensão à conversão.
  • Monitoramento de carga em serviços.
  • Ritmo de uso em apps.

11. Ritmo de Ativações (activationRhythm)

O que é

Tempo médio entre ativações.

Usos reais

  • Entender periodicidade.
  • Detectar padrões humanos.
  • Mapear ciclos de operação.

12. Mudança Temporal (temporalChangeRate)

O que é

Quantidade de ativações + desativações por minuto.

Usos reais

  • Detectar anomalias.
  • Mapear instabilidade.
  • Rastrear eventos críticos.

13. Overlap Temporal (temporalOverlapRatio)

O que é

Proporção de intervalos que se sobrepõem.

Usos reais

  • Atendimento simultâneo.
  • Requisições concorrentes.
  • Estouro operacional.

14. Snapshot Temporal (temporalSnapshot)

O que é

Foto instantânea do grafo.

Usos reais

  • Dashboards.
  • Debug.
  • Contexto para GraphRAG.

15. Tempo Ativo Acumulado (totalActiveTime)

O que é

Soma total de tempo de todas as relações.

Usos reais

  • Medir engajamento.
  • Calcular uptime.
  • Analisar carga operacional.

16. Ativações/Desativações

O que é

Número de relações iniciadas/terminadas.

Usos reais

  • Leads iniciando vs encerrando.
  • Sessões criadas/fechadas.
  • Telemetria IoT.

🌎 Usos Reais no Mundo

1. CRM e Conversas (WhatsApp, Instagram, E-mail)

  • medição de velocidade de resposta
  • análise temporal de funil
  • identificação de leads quentes
  • previsão de abandono

2. E-commerce

  • detecção de padrões de compra
  • mapeamento de fricções temporais
  • evolução de jornada

3. Suporte e Tickets

  • SLA temporal real
  • gargalos
  • fluxo entre agentes

4. IoT e Sensores

  • ativação/desativação
  • correlação temporal
  • picos e quedas

5. Sistemas Distribuídos

  • rastreamento causal
  • mensagens entre microserviços
  • análise de latência real

6. Social Graphs

  • surgimento de tópicos
  • ondas virais
  • propagação temporal

7. GraphRAG + LLMs

  • memória temporal
  • raciocínio causal
  • reconstrução contextual

🧪 Dataset Sintético

Arquivo:

examples/generateSyntheticTemporalGraph.ts

Permite testar todo o motor da biblioteca.


📈 Visualização

Executar:

examples/computeTemporalMetricsFromSynthetic.ts

Gerará:

  • visualizations/temporal_metrics.json
  • visualizations/temporal_metrics_plot.html

O HTML mostra:

  • Active Edge Count Over Time
  • Temporal Intensity Over Time

About

This library provides some basic data structures and algorithms.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •