Wikipédia:Robôs/Pedidos de aprovação/Atualizador-cidades-bot

Origem: Wikipédia, a enciclopédia livre.

pedidoediçõescontadorlogsblock userblock logflag logflag botSUL util

Operator: Bernardo Lansing.

Automatic or manually assisted: Manual (o operador irá fornecer dados aos bot conforme esses dados são publicados).

Programming language(s): Python (Pywikibot).

Function summary: Bot para atualizar programaticamente dados do infobox de municípios do Brasil. Pretendo usá-lo para atualizar os dados de população, IDH e PIB conforme estes vão sendo publicados.

Edit period(s) (e.g. continuous, daily, one time run): Fará entre 5 e 6 mil edições de uma só vez, com uma grande latência (de anos talvez) até outro acionamento.

Edit rate requested: 45 edições por minuto (não que seja um requisito, esta apenas seria uma taxa que não gargalaria o programa).

Already has a bot flag (Y/N): Não

Function details: Usa a biblioteca Pywikibot, do Python, para simplicar a comunicação com a API da MediaWiki. Cada vez que for acionado, deverá ser abastecido e reprogramado para interpretar a informação que será atualizada.

Discussion[editar código-fonte]

Olá, Bernardo Lansing, apesar do nome do bot estar bem, indicando que é bot, ele ainda não está marcado como tal. Isso acontece quando o pedido for aprovado e um burocrata adicionar essa flag à conta. Veja Wikipédia:Usuários/Direitos de acesso para saber os direitos de acesso que são atribuídos com a flag de bot. Normalmente, a edit rate para robôs na Wikipédia em Português é de cerca de 6 edições por minuto. Isto faria que a tarefa ficaria completa num dia em vez de 2 horas, caso o ritmo fosse de 45ed/min. Se isso for aceitável, poderemos começar um período de testes, em que o bot faria cerca de 50 edições para verificar que a configuração está certa e que o bot não introduz erros inesperados. GoEThe (discussão) 11h28min de 3 de novembro de 2022 (UTC)[responder]

Olá! Atualizei a marcação do bot. Quanto à taxa de edição, sem problema. Ela não é importante para a tarefa a ser prestada. Seis edições por minuto está de bom tamanho. O período de testes vai ter que esperar, pois acabei ficando sem meu computador agora. Somente daqui a um mês e meio ou dois meses que eu poderei ter o código pronto. Quando isso acontecer, poderei entrar em contato contigo para combinarmos o próximo passo? Desde já, agradeço. Bernardo Lansing (discussão) 03h16min de 5 de novembro de 2022 (UTC)[responder]
Boa noite. Voltei a trabalhar no bot, só que ele está proibido de fazer edições. Você consegue desbloqueá-lo para eu continuar o desenvolvimento? Bernardo Lansing (discussão) 02h46min de 14 de dezembro de 2022 (UTC)[responder]
@Bernardo Lansing Desculpe a demora, desbloqueie o bot. Pode fazer cerca de 50 edições de teste para testar a configuração. Por favor pingue-me ou um dos outros WP:Burocratas quando estiver pronto. GoEThe (discussão) 14h54min de 4 de janeiro de 2023 (UTC)[responder]
@GoEThe, perdão pela demora. Hoje eu finalizei o desenvolvimento do bot. Você pode consultar todo o código aqui: https://github.com/bernardolansing/atualizador-cidades-bot. Fiz várias edições de teste e acredito que tenha corrigido todos os problemas. Veja alguns dos artigos que eu acabei de atualizar (automaticamente e sem intervenção humana): Barros Cassal, Benjamin Constant do Sul, Bento Gonçalves, Boa Vista das Missões, Boa Vista do Buricá. Fiz ele o mais completo possível logo de começo. O algoritmo percorre tabelas contendo as informações advindas de veículos oficiais e atualiza os seguintes campos:
- População;
- Ranking da população, por estado e por país;
- IDH;
- Ranking do IDH, por estado e por país;
- PIB;
- Ranking do PIB, por estado e por país;
- Índice de Gini;
- Ranking do índice de Gini, por estado e por país;
- Área territorial.
Algumas considerações importantes:
- O algoritmo coleta dados de várias fontes e tabelas diferentes, mas insere referências de onde cada uma pode ser obtida (se achar que elas não estão boas o suficiente, podemos ver o que fazer para melhorá-las);
- Os rankings são calculados com base nos dados que eu usei, e não conforme os dados constantes nas "lista de municípios do estado x por população/IDH/...". Naturalmente, em alguns casos ocorrem discrepâncias, mas com o algoritmo nós temos a liberdade de fazer os cálculos baseando-se na informação mais atualizada que há até o momento;
- O acionamento do bot pode, em alguns raros casos, introduzir quebras de referências. Isso acontece quando o algoritmo substitui um campo que antes continha uma referência com nome e corpo, e no restante do artigo aquela referência era reusada pelo nome. Infelizmente, não seria possível tornar o algoritmo tolerante a esses casos sem que se investisse um enorme esforço de implementação e validação. Logo, minha proposta é deixar que essas situações aconteçam e que sejam consertadas manualmente conforme vão sendo identificadas;
- Contudo, as novas alterações que o algoritmo fará serão seguras, porque as referências são todas inseridas tanto com corpo quanto com nome. Desta forma, não precisaremos nos preocupar com compatibilidade futura.
Futuramente, será possível atualizar o bot para atualizar automaticamente as listas que mencionei antes. A maioria delas se encontra desatualizada ou, pior ainda, atualizada parcialmente. No entanto, quero antes que a versão atual seja aprovada para que eu possa começar as edições. Bernardo Lansing (discussão) 00h55min de 30 de abril de 2023 (UTC)[responder]
@Alchimista @Conde Edmond Dantès @Érico @Fabiojrsouza @RadiX @Stanglavine @Tuga1143 @WikiFer Bernardo Lansing (discussão) 01h56min de 2 de maio de 2023 (UTC)[responder]
Comentário: @Bernardo Lansing: primeiramente, a intenção é muito bem-vinda. Eu que edito sobre municípios do Brasil com frequência sei o quanto a wiki precisa de um bot como o proposto. Entretanto, as edições possuem alguns desvios:
1) As fontes indicadas nas edições não cobrem o conteúdo. Tratando-se de estatísticas atualizadas de tempos em tempos, é necessário que a informação esteja contida na página indicada como referência. Além disso, há duplicação de referências (bastava repetir a "ref name").
2) Faltou um campo "acessodata=" na {{Citar web}}. E pessoalmente não acho necessário a ligação interna para "IBGE".
3) A sequência dos parâmetros no código wiki nos artigos editados foi totalmente alterada. Se ao menos obedecesse a ordem da infocaixa era entendível (e até desejável para manter o padrão), mas não é o que ocorre.
4) A infocaixa formata automaticamente os números por meio da {{fmtn}}, logo os números a serem inseridos devem não devem conter vírgulas nem espaços, utilizando ponto para gerar vírgula. Exemplo: basta inserir 1200000.26 para gerar "1 200 000,26".
Por fim, é desejável, se for possível, aproveitar para remover os campos extintos da infocaixa que ainda não foram retirados dos artigos. Cito como exemplo os campos mais recorrentes: "apelido", "aniversário", "CEP", "microrregião", "data_microrregião", "mesorregião", "data_mesorregião". Isso tem atrapalhado e muito principalmente editores novatos, e talvez interfira na questão da sequência das informações que citei acima.
Deixei um exemplo a ser seguido nessa página com base nos problemas elencados, sugiro que use como base para um padrão a ser seguido. Outros artigos cujas infocaixas estão bem preenchidas e me recordo agora: 1, 2, 3. --HVL disc. 20h17min de 2 de maio de 2023 (UTC)[responder]
Uma correção no ponto 4: no campo "PIB" em específico não há formatação automática, então é necessário que se insira a {{fmtn}} manualmente, como é feito nos exemplos que indiquei ({{fmtn|1200000.26|mil}} para gerar "1 200 000,26 mil"). --HVL disc. 20h23min de 2 de maio de 2023 (UTC)[responder]
Quanto ao item 1, você quis dizer que ao invés de linkar https://www.ibge.gov.br/cidades-e-estados/rs/ (como está agora) eu deveria linkar https://www.ibge.gov.br/cidades-e-estados/rs/benjamin-constant-do-sul.html? Tudo bem, pode ser feito. No entanto, para evitar os problemas de compatibilidade futura que eu citei, é necessário que todas as referências que o bot escreva tenham nome e corpo. Se o nome for omitido, elas aparecerão múltiplas vezes; se o corpo aparecer uma única vez e o nome for repetido, todas as reincidências estarão dependendo do campo onde o corpo está inserido. Se o campo for alterado programaticamente, vai quebrar no resto das vezes.
Eu tive alguns problemas estranhos com o acessodata, ele reclamava de referência quebrada (embora eu tivesse 99% de certeza de que ele estava sendo inserido corretamente). Mas sem problema, vou tentar de novo. Dá para remover os campos obsoletos e remover a formatação do número também. Atualizo aqui quando as alterações estiverem prontas. Bernardo Lansing (discussão) 02h25min de 3 de maio de 2023 (UTC)[responder]
@HVL Eu terminei as alterações. Fiz tudo o que pediste, menos a remoção daqueles campos que você citou. Na página da predefinição, o único parâmetro marcado como obsoleto é fim_mandato. Alguns dos que você citou são marcados como opcionais, outros nem constam na lista. Se os parâmetros obsoletos mais antigos foram simplesmente removidos da documentação, eu precisaria de uma lista completa de quais seriam estes. Eu poderia remover todos os parâmetros que não se encontram naquela lista também, mas considero isso perigoso pois daí o bot teria de levar em conta quais parâmetros novos foram adicionados ou quais foram editados e não tenho como prever se serei capaz de manter isto atualizado no futuro.
Aqui vai mais cinco municípios atualizados automaticamente: Boa Vista do Cadeado, Boa Vista do Incra, Boa Vista do Sul, Bom Jesus (Rio Grande do Sul) e Bom Princípio. Perceba que em Boa Vista do Sul ocorreu uma daquelas quebras que eu mencionei na minha resposta anterior. Há alguma maneira de detectá-las? Tipo, um portal aqui na Wikipédia onde constam artigos que têm esse tipo de erro. Bernardo Lansing (discussão) 00h09min de 5 de maio de 2023 (UTC)[responder]
@Bernardo Lansing: dos parâmetros que citei o único "opcional" em funcionamento o CEP, o qual realmente imaginei que já tivesse sido suprimido, uma vez que a inserção de CEP contradiz com a própria política do projeto Brasil. Os demais foram depreciados com o passar do tempo e infelizmente aquela relação estava desatualizada, mas acabei de atualizar. Quanto ao "fim_mandato" obsoleto, não entendi esta classificação porque nesse teste deixei de preencher o campo e a informação não apareceu automaticamente (o que era esperado). Como ele ainda está ativo, desaconselho remover.
Note no mesmo teste os campos que citei anteriormente (exceto o "CEP") não funcionam mais. Como já estão defasados há vários meses e/ou anos, sua remoção agora não trará nenhuma quebra adicional. Fiz um levantamento no histórico e constatei que os itens removidos nos últimos cinco anos foram estes: "apelido", "aniversário", "microrregião", "data_microrregião", "mesorregião", "data_mesorregião", "região_intermediária", "data_região_intermediária", "região_imediata", "data_região_imediata", "padroeiro". Retirá-los é uma demanda, mas como foge do objetivo inicial (de atualizar) também não vou impor que os remova, mantenho como sugestão.
Sobre a questão da referência repetida, confesso que não sei se existe algum problema do ponto de vista técnico em repetir a fonte integralmente, mas o recomendado é utilizar a "ref name", por isso estou receoso. Entretanto, se os burocratas não verem problemas com isso, também não me oponho a prosseguir assim. Uma alternativa seria aplicar como referência documentos individuais do IBGE para cada dado, em vez de repetir a fonte. Veja se concorda com o que fiz aqui. Fontes diferentes para população, área, IDH, PIB e GINI.
Uma situação que não tinha percebido antes (peço perdão por isso) e só notei agora é que o robô inseriu os campos "população_data", "pib_data" e "pib_per_capita_data", mas não substituiu as variantes "data_pop", "data_pib" e "data_pib_per_capita", que permaneceram com os dados antigos ocultos. Ao inserir os novos campos é necessário remover eventuais variantes (as quais constam na documentação da predef.). Visualmente não parece problemático, mas pode causar confusão a algum desavisado que editar a página.
Quanto à quebra, desconheço alguma forma de detectá-las. Infelizmente a maioria dos artigos de municípios estão jogados às traças, sem qualquer monitoramento, cada um segue um padrão diferente há anos. Não tendo como o robô mover a referência já existente na infocaixa para o texto, a saída seria mesmo consertar manualmente depois, como ressaltou inicialmente. Também peço desculpas por me alongar, porém creio que esteja em um bom caminho. --HVL disc. 17h54min de 5 de maio de 2023 (UTC)[responder]
@HVL. Eu atualizei a lista de parâmetros obsoletos; estes que você citou serão removidos a partir de agora. Eu não tinha me dado conta de remover os parâmetros redundantes... teria sido um problema grave. Já corrigi isso também.
As tabelas que eu baixei não indicam precisamente de onde os dados foram extraídos, dizem no máximo a entidade responsável por eles e o ano da publicação (você pode baixá-las em https://www.ibge.gov.br/cidades-e-estados/rs/ -> exportar -> todos os municípios -> XLS). Por isso, pensei inicialmente em citar apenas o site de onde eu as baixei. Se você considera um problema repeti-las várias vezes, posso colocar uma citação diferente para cada campo sim. Eu estava receoso de acabar citando uma fonte que não era a mesma que a tabela usou.
Veja, por exemplo, a referência que você usou em Boa Vista do Cadeado para o índice de Gini. Na verdade, aquela tabela mostra o índice de Gini da renda domiciliar per capita, que aparentemente é diferente do índice de Gini propriamente dito. Tanto é que os valores divergem (embora que bem pouco). Aliás, nem consta o Gini nas referências que eu estava usando para ele, e eu não consegui encontrar nenhuma fonte decente que eu possa referenciar (acho que ninguém liga muito para esse indicador, infelizmente). Talvez possamos abrir uma exceção e deixar sem referência para ele agora que estamos na iminência da divulgação do novo censo? Do mesmo vou ter que readaptar tudo quando ele for publicado.
Antes de fazer mais edições... acabei percebendo só agora que existe um campo área_pos, então agora eu estou calculando os rankings para a área territorial de cada município. No entanto, adicioná-los não parece surtir efeito algum... Seria esse outro campo obsoleto? Bernardo Lansing (discussão) 23h47min de 6 de maio de 2023 (UTC)[responder]
@Bernardo Lansing: é melhor usar referências diferentes para cada campo, pois entra em isonomia com nossas recomendações, considerando que não tem como usar a ref name para mesmas fontes. Não acredito que estatísticas do IBGE para um mesmo ano irão variar de um local de publicação para outro, salvo eventual arredondamento que pode ocorrer, mas este não parece ser o caso para os dados que pretende atualizar. Exceção a isso aparenta ser o Gini, como destacou, porém por ter importância menor e por estar prestes a ser atualizado com o novo censo (assim espero) concordo em não atualizá-lo por enquanto. De fato, a fonte do DATASUS de 2010 parece se tratar de outro significado, enquanto que o IBGE Cidades ainda usa dados de 2003 para esse indicador. Sobre o campo "área_pos", parece não funcionar mesmo, pelo que acabo de removê-lo da documentação também. --HVL disc. 14h05min de 7 de maio de 2023 (UTC)[responder]
Um ponto que reparei agora: a vírgula do PIB está mal posicionada e faltou indicar que o valor é vezes mil, como apliquei aqui. A fonte que indiquei contém o valor exato, enquanto que a fonte do IBGE Cidades está arredondada, mas não creio que isso seja problema. Entretanto é necessário corrigir a posição da vírgula e adicionar indicação de multiplicador. Este é o padrão cru para o PIB: "{{fmtn|216746.13|mil}}" para gerar "216 746,13 mil", no qual a única pontuação que se insere é o ponto (.) para gerar vírgula, lembrando do "mil" no final. É muito detalhe envolvido, mas agora creio que vai. --HVL disc. 14h26min de 7 de maio de 2023 (UTC)[responder]
Acredito que agora esteja tudo okay. Se não estiver, mesmo que por detalhe, não hesite em contestar (isso precisa estar 100% correto, porque se não serão mais de 5 mil páginas com erros).
Campinas do Sul, Campo Bom, Campo Novo, Campos Borges, Candelária (Rio Grande do Sul). Bernardo Lansing (discussão) 23h53min de 9 de maio de 2023 (UTC)[responder]
@Bernardo Lansing: melhorou muito já! Ainda tenho dois apontamentos: 1) Não tem como utilizar a fonte do PIB que usei em Boa Vista do Cadeado? Perceba que o link direciona para o download de uma tabela com os dados de PIB e PIB per capita, enquanto que no link que vem usando (do SIDRA) é necessário que o leitor procure pelo site como gerar os dados. E não consegui encontrar PIB per capita no SIDRA. Questão de acessibilidade. Em alternativa, pode-se usar no lugar da ligação para o download a página onde a tabela está hospedada. 2) Se não for incluir a referência do Gini o certo é não incluir o dado também, visto que não tem como comprová-lo. Isso fere a política de verificabilidade. No mais, tudo certo a meu ver. --HVL disc. 22h53min de 10 de maio de 2023 (UTC)[responder]
Okay, mudei para a referência que você usou lá. A princípio não era para ser necessário navegar no site do SIDRA, era para abrir a tabela direto após o carregamento. Talvez seja uma questão dos cookies ou armazenamento local do site. Além disso, sem mais Gini nas próximas edições.
Cerro Grande do Sul, Cerro Largo, Chapada (Rio Grande do Sul), Charqueadas, Charrua (Rio Grande do Sul). Bernardo Lansing (discussão) 23h17min de 11 de maio de 2023 (UTC)[responder]
@Bernardo Lansing: agora parece tudo certo. Se faltou, registro meu Apoio. Em vista das adequações feitas nos últimos dias, reforço o pedido e chamo alguns dos burocrata e/ou membros do GAB para aferir a aprovação do requerimento, que já está em aberto há mais de seis meses: @GoEThe, Fabiojrsouza, Stanglavine, Alchimista, WikiFer, Érico, Alchimista e Conde Edmond Dantès:. --HVL disc. 02h18min de 12 de maio de 2023 (UTC)[responder]

@Bernardo Lansing: Olá. Pensando em termos de sustentabilidade para o longo prazo, já que a ideia é realizar essa atualização uma vez em anos, para a próxima execução seria interessante adaptar o script para atualizar esses dados diretamente no Wikidata, e de lá puxá-los para cá via predefinição Info. Essa abordagem traz vários benefícios: é relativamente mais fácil de implementar, pois não depende da formatação das predefinições; no Wikidata os dados ficam disponíveis para todos os projetos e para a web como dados estruturados abertos; é possível manter um histórico desses valores nos itens dos municípios; a atualização também tende a ser mais fácil. É uma ideia a se considerar, já que a tendência é de que essas informações quantitativas e objetivas sejam cada vez mais armazenadas no Wikidata do que diretamente nos artigos. stanglavine msg 13h10min de 9 de maio de 2023 (UTC)[responder]

Interessante. Eu nem sabia da existência desse serviço. Quem dera eu tivesse ouvido falar antes de terminar o projeto :( ... Vou ter que dar uma estudada nisso, não tenho nem ideia de quanto tempo levaria para eu migrar o projeto para lá. Por isso, eu proponho que o bot seja aprovado do jeito que está para garantir que o tenhamos no momento da publicação do censo. Dessa forma poderemos rapidamente atualizar os municípios com as novas informações e depois disso teremos tempo para investir nessa ideia. Bernardo Lansing (discussão) 23h50min de 9 de maio de 2023 (UTC)[responder]
A transcrição para o Wikidata é uma alternativa muito bem-vinda, mas enquanto não se aplica concordo que prossigamos nos moldes propostos, mesmo que seja só um paliativo ante a futura migração. --HVL disc. 22h53min de 10 de maio de 2023 (UTC)[responder]