Autoria e individualização em textos e códigos-fonte

Atribuir autoria e discriminar contribuições demandam procedimentos tecnicamente robustos que combinem conteúdo, estilo e metadados de produção. Em textos, a estilometria busca assinaturas estatísticas de uso da linguagem; em software, além de sinais estilísticos, existem traços processuais (histórico de commits, horários, padrões de refatoração) que auxiliam a reconstrução de “propriedade” técnica de trechos. O objetivo não é proferir valorações jurídicas, mas produzir achados técnicos testáveis, com incerteza quantificada.


Fundamentos

Linguística forense e estilometria (texto)

A estilometria explora regularidades de um autor sob controle de tema e gênero. Conjuntos de variáveis típicas:

  • Léxico-funcional: frequências de palavras-funcionais e n-gramas de caracteres;

  • Sintaxe superficial: comprimento médio de sentença, proporção de orações coordenadas/subordinadas, padrões de pontuação;

  • Medidas de entropia e riqueza lexical: TTR ajustada, MTLD, HLR;

  • Marcadores idiossincráticos: preferências de grafia, abreviaturas, coligações.

Modelos discriminativos (p.ex., regressão logística, SVM, árvores/boosting) e representações vetoriais (TF-IDF, embeddings controlados) são empregados em classificação multi-classe (atribuição) e one-class/siamês (verificação).

Estilometria e engenharia de repositórios (código-fonte)

No código, sinais de estilo incluem:

  • Formatação e convenções: indentação, espaçamento, posição de chaves, comprimento de linha;

  • Preferências sintáticas: escolha de estruturas de controle, nomeação, ordem de parâmetros;

  • Complexidade e estrutura: métricas (CC, Halstead), fatores de extração/inline, granularidade de funções;

  • Padrões de commit: cadência temporal, mensagens, coocorrência de arquivos, “ownership” estatístico.

A mineração de repositórios (VCS) complementa a estilometria com evidências de processo: blame/annotate, grafos de coautoria, diffs e metadados temporais.


Materiais e métodos

Aquisição e preservação (cadeia de custódia)

  1. Coleta controlada (cópia forense read-only) de versões, rascunhos, repositórios e artefatos correlatos (builds, bytecodes, binários);

  2. Hashing (p.ex., SHA-256) de cada item e do conjunto;

  3. Inventário (tamanho, carimbos de data/hora, origem, ambiente);

  4. Congelamento de dependências, quando aplicável;

  5. Registro de parâmetros (versões de ferramentas, idioma, tokenizadores), visando reprodutibilidade.

Definição do problema

  • Atribuição de autoria (identificação): escolher, dentre candidatos, o mais compatível com o conjunto-alvo.

  • Verificação de autoria (mesmo autor?): decidir se textos/códigos provêm do(a) mesmo(a) autor(a).

  • Individualização de contribuições: estimar quanto e o quê cada contribuinte produziu e quando.

Pré-processamento

  • Texto: normalização controlada (encoding, remoção de metadados exógenos), segmentação por sentença, lematização opcional, preservando traços de estilo;

  • Código: parsing por linguagem; normalização de comentários apenas quando justificado (guardar cópias pré/pós); métricas estáticas por arquivo/função; extração de commits e linhas alteradas.

Extração de características

  • Texto: n-gramas (caractere/palavra), frequências de palavras-funcionais, distribuições de comprimento, vetores sintáticos superficiais, medidas de riqueza lexical;

  • Código: vetores de estilo (indentação/chaves), métricas de complexidade, padrões AST (subárvores), perfis de chamadas, histogramas de tokens, traços de diffs e de autoria em VCS.

Modelagem

  • Atribuição: classificadores multi-classe com regularização e validação estratificada por tema;

  • Verificação: métricas de similaridade/ distância (coseno, JSD) e modelos siameses/one-class para perfis autorais;

  • Fusão de evidências: combinação ponderada de canal textual, sintático e processual (VCS), com pesos calibrados em corpus de controle.

Individualização de contribuições (VCS + conteúdo)

  • Quantificação: linhas/funcões atribuídas por blame, número e tamanho de commits, proporção de alterações persistentes;

  • Qualificação: natureza das mudanças (implementação, refatoração, testes, documentação);

  • Temporalidade: séries de tempo por módulo/arquivo;

  • Consistência: correspondência entre autoria de VCS e sinais de estilo por trecho.


Procedimentos analíticos

Texto (autoria e coautoria)

  1. Estratificação por tema/gênero, evitando que o assunto explique as diferenças;

  2. Extração multicanal (léxico-funcional, sintaxe superficial, n-gramas);

  3. Treino/validação com desacoplamento temporal (quando há versões) e cross-tema;

  4. Interpretação: relatórios com importância de variáveis, estabilidade dos coeficientes e exemplos representativos;

  5. Coautoria: decomposição por segmentos (janelas deslizantes) e análise de alternância de assinaturas.

Código (autoria e coautoria)

  1. Mapa de propriedade por arquivo/função a partir do VCS (ownership estatístico);

  2. Perfis de estilo por desenvolvedor(a) (formatação, preferências sintáticas, complexidade);

  3. AST e fluxo para reduzir a sensibilidade a alterações cosméticas;

  4. Conciliação: quando VCS e estilo divergem, investigar refatorações, cherry-picks, merges automáticos e geração de código.


Avaliação e validação

Métricas

  • Atribuição: acurácia/top-k, macro-F1;

  • Verificação: AUC-ROC/PR, Equal Error Rate (EER) e curvas DET;

  • Estabilidade: variação das métricas sob perturbações (renomeação, refatoração, recompilação);

  • Uncertainty reporting: intervalos de confiança via reamostragem/bootstrapping.

Experimentos de robustez

  • Texto: controle de tema e gênero, remoção de “marcadores fáceis” (citações, listas);

  • Código: reexecução após formatação automática, minificação/desminificação e normalização de comentários;

  • VCS: checagem de “autoria aparente” (commits feitos por contas de bots/CI, squash merges).

Corpus de referência

Construir corpus interno com pares: (i) mesma autoria; (ii) coautoria; (iii) autores distintos; (iv) material gerado/transformado por ferramentas. Registrar versões e hashes para reuso controlado.


Resultados e interpretação

A apresentação de resultados deve ir além de um percentual único. Recomenda-se:

  • Panoramas por nível (texto/AST/VCS), com mapas de trechos e funções;

  • Evidências convergentes: coincidências que emergem em dois ou mais canais recebem maior peso;

  • Raridade contextual: trechos idiossincráticos > boilerplate;

  • Narrativa técnica: sequência de achados que explicam onde, como e com que estabilidade as semelhanças ocorrem.


Limitações e vieses

  • Tamanho mínimo de amostra: perfis autorais instáveis em textos muito curtos ou funções micro;

  • Efeitos de edição: revisões por terceiros, normalizadores de estilo e linters podem mascarar sinais;

  • Código de terceiros/gerado: frameworks, templates e IA elevam coincidências por construção;

  • Ambiente e ferramentas: diferenças de compilador/formatter, detecção de idioma, tokenizadores;

  • Causalidade: alta similaridade não implica necessariamente derivação; requer integração contextual dos achados.


8Diretrizes de relato e reprodutibilidade

  1. Escopo: materiais analisados, versões e hashes;

  2. Metodologia: canais de análise, parâmetros, corpus de controle;

  3. Resultados: tabelas, figuras, trechos representativos (com máscara para dados sensíveis);

  4. Robustez: testes e variação observada;

  5. Limitações: amostras, vieses, incertezas;

  6. Materiais suplementares: scripts, listas, logs, ambientes (quando possível).
    Relatos devem permitir refazer o caminho com os mesmos insumos e parâmetros.


Considerações éticas

  • Privacidade e minimização: tratar apenas dados necessários;

  • Transparência técnica: documentar critérios, limiares e incertezas;

  • Não-extrapolação: evitar conclusões além daquilo que os dados suportam;

  • Proteção de segredos: anonimização/mascaramento responsável de trechos e identificadores.


A atribuição de autoria e a individualização de contribuições beneficiam-se da fusão de evidências: estilo, estrutura e processo (VCS). Resultados tecnicamente sólidos decorrem de aquisição cuidadosa, modelos calibrados, validação com controle de variáveis e relato transparente. O produto final é um quadro técnico coerente, com estimativas e incertezas explicitadas, apto a ser auditado e reproduzido por pares.

Image: iStock.com/gorodenkoff

Veja também