Ir para o conteúdo

Blogue ·

Dois nomes para o mesmo artigo

Um texto de ligação que encurta um título é estilo da casa. Um que troca uma palavra é um defeito. Distingui-los exigiu uma medição e não uma opinião.

Por Provibr

Um leitor encontrou nos nossos artigos traduzidos uma coisa que nenhuma verificação automática conseguia ver: uma ligação que prometia uma coisa e aterrava numa página cujo cabeçalho afirmava outra. Registámo-lo como regra e partimos depois para o transformar numa guarda.

A guarda óbvia é «o texto da ligação tem de ser o título». Essa guarda está errada, e descobrir porquê exigiu a medição inteira.

A regra óbvia não é o estilo da casa

Medimos todas as ligações internas entre artigos nas nove línguas: 1153, sem nenhum destino em falta. Depois pontuámos cada texto de ligação em relação ao título da página para que aponta, como uma sobreposição de palavras, e olhámos para tudo o que ficava abaixo de um limiar de 0,55.

Eram 418. Quarenta e nove estavam em inglês, que é a língua de origem e portanto, por definição, não é uma deriva de tradução. Essas quarenta e nove são assim:

> uma ligação com o texto only ever connects outbound, a apontar para um artigo intitulado The case against port forwarding your panel

Isso não é um erro. Um texto de ligação curto e descritivo corre dentro da frase que o rodeia e é suposto correr. Uma guarda sobre a banda baixa dispararia quatrocentas vezes e nomearia zero defeitos, e uma guarda que dá o alarme em falso passa a ser saltada, o que é pior do que não a ter.

Portanto a banda baixa é estilo da casa, e a coisa que procurávamos está noutro sítio completamente diferente.

O defeito está na banda alta, e é uma substituição

O caso do relatório tem uma sobreposição de 0,78. Está bem acima do limiar, que é a razão por que olhar abaixo do limiar nunca o poderia ter encontrado.

> ligação: ein Ablauf ist ein Graph, und ein Graph muss endlich sein > título: Ein Flow ist ein Graph, und er muss endlich sein

O texto da ligação não é mais curto do que o título nem é uma paráfrase. Cita o título e troca uma palavra. É essa a forma verdadeira do defeito: aparece uma palavra que o título não contém e falta uma palavra do título, ao mesmo tempo.

Encurtar um título é aceitável, porque uma ligação dentro de uma frase muitas vezes não consegue transportá-lo inteiro. Acrescentar uma palavra esclarecedora é aceitável. Fazer as duas coisas ao mesmo tempo significa que há dois nomes em circulação para um só artigo, e um leitor que viu a ligação e depois o cabeçalho tem de decidir se está na página certa.

Dito assim, a regra é uma frase e sobrevive ao contacto com texto a sério. Acima do limiar de sobreposição, um texto de ligação pode encurtar o título ou alargá-lo, mas não as duas coisas.

Duas coisas que parecem um nome diferente e não são

Foi preciso filtrar dois géneros de variação antes de a regra ser utilizável, e ambos foram encontrados a executá-la e a ler o ruído.

O primeiro são as palavras funcionais: artigos, conjunções, preposições. São estruturais e não carregam nenhum nome. Toda a palavra com dois caracteres no máximo é retirada dos dois lados.

O limite de dois, em vez de três, é medido e não escolhido. O caso italiano do mesmo relatório é deve essere contra um título que diz dev'essere: as mesmas duas palavras, escritas com uma elisão. Com um limite de três caracteres, dev cai do lado do título, deixa de faltar seja o que for, e o achado desaparece. Uma guarda afinada com um carácter a mais de agressividade teria ficado verde num dos dois casos para que foi construída.

O segundo é a flexão. sell e selling, says e saying são a mesma palavra em formas diferentes, e em oito línguas isso é constante. Duas palavras que partilhem uma raiz de quatro caracteres contam como a mesma palavra.

A contraparte inglesa é a triagem

Sobrou daí um conjunto de achados que precisava de discernimento, e o discernimento tinha de vir de outro sítio que não o gosto.

A regra que usámos: olhar para a mesma ligação na fonte inglesa. Se o inglês cita ali o seu próprio título, então a tradução afastou-se de alguma coisa e é um defeito. Se o inglês é ele próprio descritivo naquele ponto, a tradução está a seguir a fonte e é estilo da casa.

É um bom teste porque se responde olhando, não exige saber a língua, e põe a decisão onde a fonte de verdade já está. Produziu dezoito exceções deliberadas, cada uma registada com a sua razão, que é sempre uma frase sobre o que o inglês faz naquele ponto e não uma nota a dizer «verificado».

A reparação em si foram 76 textos de ligação em 66 ficheiros, em oito línguas: quinze em neerlandês, treze em italiano, doze em francês, oito em romeno e oito em ucraniano, sete em alemão e sete em espanhol, seis em português, e nenhum em inglês. A diferença deu exatamente 66 linhas acrescentadas e 66 linhas removidas, que é a confirmação mais barata que há de que nada mais se mexeu. A contagem da banda alta passou de 94 para 18, e os 18 são as exceções.

Uma lista de exceções precisa de um teste que prove que está viva

A guarda tem onze testes: um por língua, um a exigir que cada exceção traga uma razão, e um a exigir que cada exceção seja realmente atingida.

Esse terceiro é o importante, e vem de uma lição cara noutro ponto deste código. Uma entrada de lista de exceções com uma gralha não corresponde a nada. Também parece completa, fica no ficheiro durante um ano e, em silêncio, não protege nada. Tínhamos uma lista de trinta entradas noutra guarda em que quatro estavam mortas exatamente por essa razão.

Por isso a lista é verificada do outro lado: se uma linha dela nunca dispara, o teste falha e a linha tem de sair. Isso fecha o ciclo, porque significa que uma exceção que já foi reparada não pode continuar ali como decoração.

A guarda foi provada vermelha antes de se acreditar que estava verde, sobre o estado da árvore anterior à reparação: oito dos onze testes falharam, comunicando precisamente os 76 achados que foram depois corrigidos.

Duas coisas que esta ronda encontrou e não reparou

Dois achados ficavam fora do âmbito e foram registados em vez de reparados em silêncio.

Cinco traduções de um artigo tinham perdido do título uma palavra que outras quatro línguas traziam, portanto o mesmo artigo tinha um assunto diferente em línguas diferentes. Isso é um problema de título e não um problema de ligação, e foi tratado à parte.

Os artigos ucranianos escrevem um termo da indústria de duas maneiras, dezassete ficheiros contra seis. Isso é uma decisão de terminologia sobre o catálogo inteiro e não um defeito em dezassete ficheiros, e tomá-la de passagem enquanto se repara outra coisa é como um catálogo acaba com três grafias em vez de duas.

O que registaríamos

  1. A regra que escreveria a partir do relatório está normalmente errada. Meça o corpus inteiro antes de a codificar.
  2. Um texto de ligação curto e descritivo é estilo da casa, e uma guarda sobre ele nomeia centenas de não defeitos.
  3. O defeito é uma substituição e não um encurtamento. Uma palavra acrescentada e uma palavra em falta ao mesmo tempo.
  4. Olhe acima do limiar e não abaixo dele. O caso a sério pontuou 0,78 contra um limiar de 0,55.
  5. Afine os limites sobre os casos que tem, e verifique que a afinação não faz desaparecer nenhum deles.
  6. A flexão não é um nome diferente. Uma raiz partilhada chega.
  7. A língua de origem é a triagem. Se o inglês também é descritivo ali, a tradução não está a derivar.
  8. Cada exceção traz uma razão, e a razão diz o que a fonte faz, não que alguém foi ver.
  9. Teste que a sua lista de exceções está viva. Uma entrada morta não protege nada e parece completa.
  10. Prove a guarda vermelha sobre o estado antigo, com a contagem de achados que ela deve produzir.

Para que fique claro o que isto é: 1153 ligações internas entre artigos medidas em nove línguas sem nenhum destino em falta, 76 reparadas em 66 ficheiros, uma diferença de exatamente 66 acrescentadas e 66 removidas, a banda alta reduzida de 94 achados às 18 exceções registadas, a guarda nova com 11 testes e provada vermelha com 8 falhas sobre a árvore antiga, a verificação de conteúdo 851 de 851 ficheiros gerados idênticos byte a byte, a bateria de testes da web 4594 verdes onde estava em 4583, a verificação de tipos limpa, o analisador de código sem erros, e uma varredura de bytes sobre os 66 ficheiros tocados com as duas contagens de tipografia explicadas em vez de pressupostas. Por provar: continua a haver um leitor por língua, nenhum deles é falante nativo, e as razões das exceções não foram lidas por uma segunda pessoa.

Do trabalho de plataforma na Provibr. A revisão de leitores que fez aparecer isto está em três falhas que nenhum script conseguia ver, e o que nove catálogos fazem a um conjunto fixo de controlos está em dezasseis mil chaves, nove idiomas.

Comece com um host e um agente

Crie uma conta, instale o agente com um único comando e ligue o seu primeiro host Proxmox. O período experimental dura 14 dias e não pede quaisquer dados de pagamento.