Ir para o conteúdo

Projeto independente de P&D · Colônia

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.

Versão do mapeamento
Origem como exportada

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

    MappingDefinition

    Uma 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

    FieldRule

    Um 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

    Transform

    trim, 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 → retired

    Um 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

    Diagnostic

    Mapeado, 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.handoff

    O 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

  1. 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.

  2. 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.

  3. A versão é congelada. A partir daqui, uma pergunta como “por que isto produziu aquilo” sempre tem resposta.

  4. A origem é registrada por hash na cadeia, cada regra produz o seu diagnóstico, e o resultado é validado contra o esquema UNTP fixado.

  5. 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.

  6. 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