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)
-
Coleta controlada (cópia forense read-only) de versões, rascunhos, repositórios e artefatos correlatos (builds, bytecodes, binários);
-
Hashing (p.ex., SHA-256) de cada item e do conjunto;
-
Inventário (tamanho, carimbos de data/hora, origem, ambiente);
-
Congelamento de dependências, quando aplicável;
-
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)
-
Estratificação por tema/gênero, evitando que o assunto explique as diferenças;
-
Extração multicanal (léxico-funcional, sintaxe superficial, n-gramas);
-
Treino/validação com desacoplamento temporal (quando há versões) e cross-tema;
-
Interpretação: relatórios com importância de variáveis, estabilidade dos coeficientes e exemplos representativos;
-
Coautoria: decomposição por segmentos (janelas deslizantes) e análise de alternância de assinaturas.
Código (autoria e coautoria)
-
Mapa de propriedade por arquivo/função a partir do VCS (ownership estatístico);
-
Perfis de estilo por desenvolvedor(a) (formatação, preferências sintáticas, complexidade);
-
AST e fluxo para reduzir a sensibilidade a alterações cosméticas;
-
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
-
Escopo: materiais analisados, versões e hashes;
-
Metodologia: canais de análise, parâmetros, corpus de controle;
-
Resultados: tabelas, figuras, trechos representativos (com máscara para dados sensíveis);
-
Robustez: testes e variação observada;
-
Limitações: amostras, vieses, incertezas;
-
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
