DATA_TAXONOMY.md

🧬 DATA TAXONOMY — A Semântica do Dado

Public Markdown Document

🧬 DATA TAXONOMY — A Semântica do Dado

Este documento define os eixos de classificação semântica que permitem ao motor Fastapp reagir de forma inteligente à natureza dos dados. No motor Anti Gravity, a semântica governa a infraestrutura. Atualizado para a Ontologia v3 .

883 palavras19 headingsrepository root

🧬 DATA TAXONOMY — A Semântica do Dado

Este documento define os eixos de classificação semântica que permitem ao motor Fastapp reagir de forma inteligente à natureza dos dados. No motor Anti-Gravity, a semântica governa a infraestrutura. Atualizado para a Ontologia v3.


🏗️ Os 3 Eixos da Taxonomia Semântica

1. Categoria Semântica (object.category)

Define o "comportamento de vida" do dado no ecossistema and impacta diretamente como o gerador de código e o motor de cache operam.

Categoria Descrição Comportamento Automático (Behavior)
master Dados mestres e estáveis (ex: Corretoras, Usuários). O motor prioriza caches agressivos, dropdowns globais e otimiza buscas por nome/label.
transactional Eventos e registros de fluxo com alta volatilidade (ex: Leads, Transações). Ativa automaticamente índices por data, logs de auditoria e filtros de período/time-scales.
configuration Parâmetros de ajuste do sistema ou do usuário (ex: Settings). O motor gera interfaces simplificadas de "Settings", ocultando listagens densas e focando em editores diretos.

2. Natureza Arquitetural (object.nature)

Define a "física" do dado, ou seja, onde ele reside fisicamente no backend.

  • physical: Possui uma tabela própria no DB com ID único global, sendo plenamente referenciável por qualquer outro objeto.
  • embedded: Vive dentro do JSON de um objeto pai (Document-based). Não possui tabela própria.
  • virtual: Calculado em runtime (ex: saldo total, status derivado).

3. Orquestração Logística e Roteirização (object.routing_type) [NEW]

Define como o motor interpreta o dado em um contexto geográfico e de transporte.

  • waypoint: O dado representa um ponto de parada ou serviço (ex: Local de Entrega, Checkpoint). Ativa o calculo de ETAs e janelas de serviço.
  • route: O dado representa um trajeto completo ligando múltiplos waypoints. Ativa a visualização de linhas de desejo e trajetos otimizados.

4. Origem da API (app.* e object.*)

Define como o objeto resolve a fonte de dados em runtime.

  • Default: provider = local (usa /api/v1/data/:object com storage interno Fastapp).
  • App-level override: app.api_base_url + app.provider = external-api (ou app.is_api_data_source = true).
  • Object-level override: object.api_url (tem precedência sobre qualquer config do app).
  • Compatibilidade legado: isApiDataSource e _legacy.source_isApiDataSource continuam aceitos.

🛰️ Tipologia de Recursos e Espaço

Tipos de Recurso (object.resource_type)

Classifica entidades para algoritmos de alocação de recursos finitos.

  • human: Técnicos, motoristas, profissionais (possuem agenda e especialidade).
  • mobile_asset: Veículos, equipamentos móveis (possuem posição GPS e capacidade).
  • fixed_asset: Salas, ferramentas fixas (possuem disponibilidade local).

Tipos Espaciais (property.spatial_type)

Define a geometria do dado para o motor GIS.

  • point: Coordenadas geográficas simples (Lat/Long). Ativa o CoreMapRenderer.
  • polygon: Áreas de cobertura ou cercas eletrônicas (Geofencing). Ativa buscas por contenção.

🎨 Os 2 Novos Eixos da Ontologia v3

4. Semântica de Campo (property.semantic)

Define a natureza semântica de um campo individual, ativando renderização especializada.

Semantic Renderização Automática Exemplo
asset Upload de arquivo com preview Foto do produto, documento PDF
money Máscara monetária (R$ 1.234,56) Preço, salário
percentage Slider ou input com sufixo % Margem, desconto
phone Máscara de telefone + link tel: WhatsApp, comercial
email Validação + link mailto: Email principal
url Link clicável externo Website, LinkedIn
color Color picker nativo Cor do tema, cor de status
cpf / cnpj Máscara de documento CPF, CNPJ

5. Topologia de Apresentação (module.topology)

Define a dinâmica de navegação de um módulo ou objeto no app.

Topology Comportamento Exemplo
focal Dashboard central com métricas e visão consolidada Módulo de Logistica com mapa
connected Lista que se conecta a detalhes (master-detail) Pedidos → Itens
hierarchical Árvore navegável (tree view) Categorias → Subcategorias

⛓️ Restrições de Governança (object.geo_constraint)

Define regras de negócio espaciais automatizadas.

  • geofencing: Garante que uma ação só ocorra dentro de um polígono definido.
  • area_of_action: Vincula recursos a territórios específicos, impedindo alocação fora da zona permitida.

⛓️ Relacionamentos e Persistência (object.relations)

... (Inalterado) ...


🏗️ Reação do Motor (Behaviors)

A taxonomia permite a Escada de Abstração:

  1. L1 (Atômico): Tipos location ou area ativam automaticamente o seletor de mapa.
  2. L2 (Padrões): Objetos com routing_type: 'waypoint' ativam o ui_mode: 'dispatch_map'.
  3. L3 (Orquestração): O motor implementa a Exclusão Geotemporal — impede que um recurso seja alocado em dois locais se o tempo de deslocamento calculado (via Routes API) for insuficiente.

📈 6. Extensões Analíticas (Ontologia v3) [NEW]

Define como o motor interpreta o dado para geração de insights, métricas e visualizações de BI.

Propriedades Analíticas (property)

Atributo Tipo Descrição Comportamento Reativo
aggregation enum [sum, avg, min, max, count, distinct, none] Define a estatística primária. money assume sum, percentage assume avg.
target number Valor de meta ou baseline. Ativa o indicador de progresso e barra de performance no BiWidget.

Eixos de Análise (object)

Atributo Tipo Descrição Exemplo
temporal_axis string Campo de data usado como referência de tempo principal. closed_at em vendas, created_at default.
temporal_resolution enum [day, week, month, year, auto] Define a granularidade padrão dos gráficos de série temporal.
target_property string Campo que define o valor de meta para este objeto. meta_mensal em broker.

🔗 Contribuição Dimensional (relation)

Atributo Tipo Descrição Comportamento Reativo
contribution_property string Campo do objeto filho que deve ser somado no agrupamento. valor em sale agrupado por broker.


[!IMPORTANT]
A taxonomia é o que transforma JSON morto em uma aplicação viva. Toda alteração nestes atributos deve seguir o Protocolo FADAP.


"Na arquitetura Anti-Gravity, os dados descrevem não apenas o que são, mas como devem se comportar. A Ontologia v3 estende isso para como devem parecer, como devem navegar e como devem ser medidos."