Visão geral da pesquisa aplicada
De estruturas de origem a estruturas de passaporte
Any2DPP
Conectar um novo sistema de origem a um passaporte de produto não deveria significar escrever código novo, e, o que quer que signifique, o resultado precisa dizer qual versão de qual mapeamento produziu qual campo.
Estado: Conceito de pesquisa · protótipo não publicado
Any2DPP e AnyDPP
O Any2DPP mapeia e valida. Ele não emite nada.
O AnyDPP é dono da demonstração de ponta a ponta: ingestão, decisão, composição e o passaporte publicado.
Eles se encontram em um único adaptador. O Any2DPP valida contra o próprio esquema UNTP 0.7.0 fixado pelo AnyDPP, e não contra uma cópia, e só pode entregar uma execução liberada ao compositor do AnyDPP quando a origem da execução é um rastro do corredor.
A pergunta de pesquisa
Como estruturas de origem heterogêneas podem ser transformadas em um modelo de destino compatível com DPP sem perder procedência, significado ou a ligação com a evidência, de uma forma que uma pessoa possa revisar?
- Como este campo de origem se torna aquele campo de destino?
- Qual versão do mapeamento o produziu?
- O que falta, e isso importa?
- Que evidência está por trás de cada campo?
O modelo, de forma interativa
Uma exportação de fornecedor em português, mapeada para campos de passaporte. Estas são a definição e a origem usadas nos próprios testes do módulo. Selecione uma regra para acompanhar um campo, ou troque a versão do mapeamento para ver o que mudou.
Estrutura de origem
- produto.
nome" café ARÁBICA " - produto.
pais"br" - produto.
data"04/05/2026" - produto.
peso"1.200,50" - observacoes"nada"Não lido por nenhuma regra
Regras de mapeamento
Estrutura de destino
- type"DigitalProductPassport"
- credentialSubject.
product. name"Cafe Arabica"Evidência: supplier-export - credentialSubject.
product. originCountry"BR"Evidência: supplier-export - credentialSubject.
product. producedOn"2026-05-04" - credentialSubject.
product. mass"1200.50"
Completude
2 de 2 obrigatórios · 3 de 3 opcionais
Todos os campos obrigatórios presentes. A estrutura pode ser validada contra o esquema e liberada por uma pessoa.
Primitivas centrais
Definição de mapeamento
MappingDefinitionUma regra por campo de destino. Dados, não código, validados no carregamento: uma transformação desconhecida falha no carregamento, não em silêncio durante a execução.
Regra de campo
FieldRuleUm caminho de origem ou uma constante, uma transformação, obrigatório ou opcional, a fonte de evidência por trás do valor e um rótulo que uma pessoa consegue ler.
Lista fechada de transformações
Transformtrim, upper, lower, title, iso_date, decimal, country_code. Acrescentar uma é um ato deliberado, com um teste; não existe linguagem de expressões.
Versão imutável
draft → published → retiredUm mapeamento publicado nunca pode mudar. Uma mudança é uma nova versão sob o mesmo nome, e cada execução registra a versão que a produziu.
Diagnóstico por campo
DiagnosticMapeado, constante, faltante ou transformação falhou, ao lado do campo, além dos campos de origem que nenhuma regra lê e das contagens de completude.
Liberação humana
compose.handoffO momento em que a saída deixa de ser interna é decisão de uma pessoa, registrada como um ato de autoridade. Uma máquina não o escolhe.
Um cenário, passo a passo
Da exportação de um fornecedor a uma estrutura que poderia alimentar um passaporte.
Passo 1 de 6: Escrever o mapeamento como dados
Regras para nome, país de origem, data de produção e massa, cada uma com uma transformação e, onde importa, a fonte de evidência.
O mapeamento é aplicado a uma amostra. A pré-visualização não grava nada, então um rascunho pode ser testado quantas vezes for preciso.
A versão é congelada. A partir daqui, uma pergunta como “por que isto produziu aquilo” sempre tem resposta.
A origem é registrada por hash na cadeia, cada regra produz o seu diagnóstico, e o resultado é validado contra o esquema UNTP fixado.
Uma pessoa libera a execução. Uma execução que falhou não pode ser liberada; uma execução liberada mantém a liberação mesmo que a entrega seja recusada.
Uma execução cuja origem é um rastro do corredor vai para o compositor do AnyDPP. Qualquer outra origem é recusada com um motivo, não composta.
O que existe, e o que não existe
No repositório
- app/products/any2dpp/mapping.py: definição, transformações fechadas, diagnósticos por campo, completude, campos de origem não lidos
- service.py: criar, editar rascunho, publicar, aposentar, pré-visualizar, executar, pedir liberação, liberar, entregar
- adapters/anydpp.py: o único arquivo que chega ao AnyDPP, para o seu esquema fixado e o seu compositor
- tabelas any2dpp_mappings e any2dpp_runs; 14 rotas autenticadas
- tests/any_family/test_any2dpp.py: motor, imutabilidade, a barreira de liberação, o adaptador real do AnyDPP (31 testes)
Agenda de pesquisa, não construída
- Introspecção do esquema de origem: a origem é um conteúdo, e nada deduz a sua forma
- Uma representação intermediária canônica entre origem e destino
- Mapeamento de vocabulário e conversão de unidades além das transformações nomeadas
- Listas e cardinalidade: os caminhos são chaves com pontos dentro de objetos, por desenho, por enquanto
- Diferenças entre versões de mapeamento e migração entre versões do perfil de destino
- Uma tela de autoria guiada: pré-visualização e diagnósticos existem, o editor em várias etapas não
- Compor um passaporte a partir de uma origem arbitrária: o compositor do AnyDPP lê um rastro, pelo seu próprio contrato
O que o diferencia
- AnyDPP
A pergunta dele
Como funciona um pipeline completo da evidência ao passaporte?
Por que isto não é aquilo
O AnyDPP lê as fontes para as quais tem extratores. O Any2DPP estuda como qualquer estrutura de origem é descrita ao sistema como um contrato versionado e revisável.
- AnyTrace
A pergunta dele
Por onde esta coisa passou?
Por que isto não é aquilo
O Any2DPP vincula campos mapeados à evidência do rastro; ele não acompanha a coisa em si.
- AnyVerify
A pergunta dele
A evidência sustenta esta afirmação?
Por que isto não é aquilo
Um campo mapeado é um campo bem formado, não um campo verificado.
Onde fica na AnyLAI
Any2DPP
- AnyDPPValida contra o esquema UNTP 0.7.0 fixado pelo AnyDPP e entrega ao compositor dele as execuções vindas de um rastro, por meio de um único adaptador.
- AnyTraceUma execução se liga ao caso de rastreio cujos dados ela mapeia; os campos são vinculados à evidência desse rastro.
- Application kernelExecuções são casos do núcleo; o hash da origem está na cadeia; a liberação é um ato de autoridade.
- COADFConhecimento de regras como dados, carregamento negado por padrão e um caminho determinístico sem modelo de linguagem: os princípios do COADF, aplicados, sem alegação de conformidade.
- ligação entre casos pelo núcleo
- uso direto de outro módulo ou sistema
- chamada em modo sombra: registrada, nunca executada
Limites e não objetivos
- Ele nunca emite, assina nem publica um passaporte.
- Ele não é dono do padrão de passaporte; confere contra o esquema que o AnyDPP fixa.
- Ele só pode entregar execuções cuja origem é um rastro do corredor.
- Um campo que mapeia sem erro é bem formado, não verdadeiro.
Estado atual
Estado da pesquisa
- Conceito de pesquisa · protótipo não publicado
- Não publicado: rotas desligadas
- Sem uso em produção, sem dados reais
- 31 testes no repositório
Um módulo protótipo sobre o núcleo compartilhado: motor de mapeamento, serviço, adaptador, tabelas, rotas e testes. Desligado, não publicado, não usado com dados reais de fornecedores. A agenda de pesquisa acima é maior do que o que existe, e está listada como agenda.
Suíte de testes: python-backend/tests/any_family/test_any2dpp.py
Projeto de pesquisa · P&D independente · Não é uma oferta comercial
