Ir para o conteúdo

Blogue ·

O verbo a quatro palavras de distância

Mudar um pronome neerlandês reescreve verbos em que nunca toca. Uma tabela de 84 palavras que sai perante o que não conhece, e concordância a quatro palavras.

Por Provibr

O neerlandês tem duas maneiras de tratar um leitor. u é a forma formal e je é a informal e a escolha não é apenas uma questão de cortesia: muda o verbo e, ao contrário do equivalente francês ou alemão, a forma que sai depende de onde está o verbo. Este site tinha derivado para usar as duas, por isso decidimo-nos por je e convertemos tudo. São duas conversões, porque o texto neerlandês vive em dois sítios sem nada em comum: 102 artigos em markdown, e um catálogo de mensagens com 18841 chaves. A medição antes da primeira conversão: 445 pronomes formais em 44 dos 102 artigos, com 362 na forma simples, 82 possessivos e um reflexivo. Os outros 58 já eram informais.

Se esta fosse uma língua em que um pronome é só um pronome, a coisa toda seria um único comando de substituição. Não é, e as falhas interessantes estão todas a jusante disso.

A tabela que saltava coisas em silêncio

O neerlandês inverte o sujeito e o verbo numa pergunta ou depois de um elemento anteposto, e a terminação do verbo desaparece quando isso acontece. kunt u passa a kun je, não a kunt je. Se a terminação desaparece depende do radical: zet u fica zet je, mas schrijft u passa a schrijf je.

Portanto o script precisa de saber, para cada palavra que pode ficar à frente do pronome, o que acontece a essa palavra. A primeira versão tinha uma tabela dos verbos que eu vira numa amostra, e deixava tudo o resto em paz. Isso produziu Duwt u creditnota's a passar a Duwt je creditnota's e Verlaagt u een tijdstempel a passar a Verlaagt je een tijdstempel. Ambos errados, ambos com ar gramatical, e ambos inteiramente silenciosos. O script comunicou sucesso.

Esta é a mesma falha que já mordeu este código antes, num domínio completamente diferente: uma guarda que percorria a árvore sintática da nossa própria fonte ligava um género de declaração de variável e saltava todos os outros géneros, por isso comunicava milhares de chaves de tradução cobertas enquanto estava cega para o padrão que o painel inteiro usa. Uma tabela que salta em silêncio uma forma desconhecida parece completa e não é.

A tabela contém agora as 84 palavras que aparecem mesmo à frente de um pronome formal, contadas a partir do corpus e não de memória, e uma palavra desconhecida é código de saída 1. Das 84, 51 não mudam nada: conjunções, pronomes relativos e preposições, à frente das quais o pronome é simplesmente o sujeito ou o objeto. Dois terços da tabela existem puramente para que o terço que importa não se possa esconder atrás de um valor por omissão.

Três erros que só a leitura encontrou

Assim que a tabela ficou exaustiva, três frases continuavam erradas depois da execução, e nenhuma delas é um problema de tabela. tegen u kan liegen tinha passado a tegen je kan liegen onde devia ser tegen jou kunt liegen: o pronome ali é o objeto de uma preposição e passa à forma tónica. van u uw tinha passado a van je uw, porque a primeira passagem consumiu a posição de que uma passagem posterior precisava. E u zich tinha passado a je zich, onde o reflexivo do pronome informal é je je.

Cada um destes exige ter uma oração inteira na cabeça. Nenhuma passagem sobre uma janela de duas ou três palavras os consegue produzir, e nenhum teste que compare contagens de palavras daria por eles.

Concordância à distância

O achado da ronda é uma frase que está correta com o pronome formal e errada com o informal, em que as duas palavras envolvidas estão a quatro palavras de distância.

als u die heeft ingesteld está certo. als je die heeft ingesteld está errado; tem de ser hebt. O pronome e o verbo concordam, e die está sentado entre eles, por isso uma passagem que exige que o verbo venha logo a seguir ao pronome não vê absolutamente nada. A passagem que disparou aqui foi a que muda o pronome, e não tem razão nenhuma para olhar mais adiante na oração.

A verificação que fecha isto é uma expressão regular sobre o texto terminado: o pronome informal, até quatro palavras pelo meio, e depois um de exatamente três verbos. Cada correspondência tem de ser lida por uma pessoa, e o que foi lido e aprovado fica registado com a sua razão; uma correspondência nova é código de saída 1.

Exatamente três verbos, porque são os únicos cuja forma de segunda pessoa difere entre os dois registos. Os cinco vizinhos óbvios são idênticos nos dois, e incluí-los produziu quatro correspondências que nunca poderiam ser um defeito. Uma verificação que produz linhas sobre as quais ninguém tem de agir é uma verificação que as pessoas deixam de ler.

Até quatro palavras, porque é o que o corpus contém, e porque um intervalo sem limite atravessa fronteiras de oração. Seis das dez correspondências no catálogo terminado estavam corretas precisamente porque o verbo tinha outro sujeito.

Duas guardas, porque a máscara não pode ser partilhada

Ambos os corpos de texto têm agora uma verificação permanente, e são ficheiros separados.

A razão é que encontrar o texto corrido é um problema diferente em cada um. No markdown mascaram-se os blocos de código, o código em linha e os destinos das ligações. Num catálogo de mensagens mascara-se o nome do argumento, a palavra de estilo, os rótulos dos ramos e as marcas de texto rico da sintaxe de substituição, mantendo o texto dentro de um ramo, porque esse texto é neerlandês e um pronome nele conta. Essa máscara é um percorredor de chavetas e não uma expressão regular, pela mesma razão por que a guarda de substituições ao lado também o é: um ramo cujo texto é uma só palavra parece exatamente um argumento.

O que as duas guardas partilham mesmo é uma regra, e ela vive num só ficheiro para que não se possam afastar: um pronome com maiúscula só conta no início de uma frase.

Essa regra é uma medição e não uma comodidade. Nos artigos, dez correspondências nuas sobrevivem à conversão e as dez estão a meio de uma frase: cinco são unidades de bastidor do capítulo do datacentro, cinco são a própria letra, de um alfabeto que a omite de propósito. No catálogo há 61, com 54 a meio de uma frase, seis como rótulo e uma como unidade num nome de campo. As 61 foram lidas e nenhuma é um pronome. Escrever isso como uma lista de nomes de ficheiros teria falhado a segunda grafia da mesma ideia; escrevê-lo como uma forma apanha as duas.

O sinalizador de indiferença a maiúsculas nesse padrão foi esquecido uma vez, o que tornou invisível um pronome com maiúscula no início de uma frase: exatamente a forma que aparece num cabeçalho ou depois de um ponto final. Um teste de sonda com casos conhecidos apanhou-o de imediato. Uma guarda sem sonda é uma guarda em que se está a confiar em vez de a testar.

Duas maneiras de ficar verde no vazio

Verificar a conversão do catálogo num navegador produziu dois falsos verdes, e são eles a metade transferível desta ronda.

Uma página por trás de um interruptor de lançamento responde com uma página de erro, e uma página de erro não contém pronomes formais. Dois ecrãs do painel estão fechados assim e a varredura comunicou zero achados em ambos, o que se lê exatamente como uma página limpa. O que o tornou visível foi um limite inferior no número de caracteres: a resposta fechada tinha 173 caracteres e, com os interruptores ligados, os mesmos dois ecrãs tinham 1335 e 557. Uma varredura de uma página vazia e uma varredura de uma página limpa são o mesmo número.

E o servidor de desenvolvimento guarda o catálogo em cache. A primeira execução partida de propósito, aquela que é suposto ficar vermelha para se saber que a verificação funciona, ficou verde, porque o ficheiro trocado só era servido depois de um reinício. Uma prova vermelha que fica verde por uma razão sem relação é pior do que nenhuma prova vermelha: certifica a verificação.

O que registaríamos

  1. Um pronome numa língua flexionada não é uma cadeia de caracteres. Mudá-lo reescreve palavras em que não toca.
  2. Uma tabela exaustiva bate uma tabela por amostragem, e a diferença só é visível quando ela sai perante aquilo que não conhece.
  3. Dois terços de uma boa tabela podem não fazer nada. Existem para que o resto não se esconda atrás de um valor por omissão.
  4. Uma janela de duas palavras não vê uma oração. Alguns erros precisam de um leitor e não há maneira de contornar isso.
  5. A concordância pode agir à distância. A nossa era de quatro palavras, e nenhuma passagem da cadeia olhava tão longe.
  6. Restrinja uma verificação às formas que podem mesmo diferir. Cinco verbos a mais deram quatro linhas sobre as quais ninguém podia agir.
  7. Uma verificação que dá linhas sem ação passa a ser saltada, o que é pior do que não a ter.
  8. Registe as correspondências aprovadas com a sua razão, e falhe perante uma nova. O silêncio não é um resultado.
  9. Uma página fechada é analisada como limpa. Ponha um limite inferior no tamanho daquilo que analisou.
  10. Prove a prova vermelha. Uma cache de desenvolvimento deixou a nossa verde e não teria certificado nada.

Para que fique claro o que isto é: a conversão dos artigos fez 491 substituições em 44 ficheiros, com a diferença em exatamente 306 linhas para dentro e 306 para fora e nada tocado fora da árvore de fonte neerlandesa; a conversão do catálogo fez 169 substituições sobre 115 chaves, com a contagem de chaves inalterada em 18841 e na mesma ordem, e a variação de caracteres do ficheiro inteiro reconciliada letra a letra. Ambos os corpos medem agora zero pronomes formais, e o invariante de palavras que compara cada par de palavras que não é a forma de tratamento comunicou zero diferenças e foi provado vermelho três vezes. Por provar: um leitor, nenhum segundo falante nativo, nenhuma medição de acessibilidade, e o texto do caminho de erro de três ecrãs fechados nunca foi gerado num navegador.

Do trabalho de plataforma na Provibr. O que nove catálogos fazem a um conjunto fixo de controlos está em dezasseis mil chaves, nove idiomas, um script de transformação que estragou três artigos para os quais nunca foi apontado está em um script de conversão que abrangeu demasiado, e outra guarda que não conseguia ver aquilo para que foi escrita está em um plural vago não é um número.

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.