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 .
🧬 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/:objectcom storage interno Fastapp). - App-level override:
app.api_base_url+app.provider = external-api(ouapp.is_api_data_source = true). - Object-level override:
object.api_url(tem precedência sobre qualquer config do app). - Compatibilidade legado:
isApiDataSourcee_legacy.source_isApiDataSourcecontinuam 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:
- L1 (Atômico): Tipos
locationouareaativam automaticamente o seletor de mapa. - L2 (Padrões): Objetos com
routing_type: 'waypoint'ativam oui_mode: 'dispatch_map'. - 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."