Wikipédia Discussão:Esplanada/propostas/Utilização do Wikidata em infoboxes (5mai2018)
Adicionar tópicoDiscussão técnica para implementação
[editar código-fonte]O texto seguinte foi movido de: Wikipédia:Esplanada/propostas/Utilização do Wikidata em infoboxes (5mai2018)
[...] Entretanto, os gurus da programação que me confirmem ou desmintam: não estou a ver forma de fazer as coisas minimamente bem feitas sem que a base das infocaixas passe a ser um módulo, nomeadamente evitando que as predefs fiquem muito pesadas devido a dezenas de consultas à Wikidata que poderiam ser uma só. Se percebi alguma coisa do que andei a ver sobre o assunto nestes dias, uma só só chamada a mw.wikibase.getEntityObject()
dá para obter quase todos os dados que se necessitam, mas como não há variáveis nos wiki-scripts têm que se pedir novamente os dados em cada local onde eles são necessários. --Stegop (discussão) 17h15min de 9 de maio de 2018 (UTC)}}
- Sim, outro exemplo seria
{{Info/Patologia}}
. Não estou certo das diferencias técnicas, a questão da "proposta intermediária" é importar dados da wikidata usando as infocaixas atuais e serem "acionadas" por campo. Creio que o modo técnico de efetivar isso deva ser discutido depois do consenso para sua implementação. Ou seja, primeiro "o que" (não técnica) e depois "como" (técnica). Confundir as duas é impossibilitar a comunidade de participar da discussão (tecnocracia). Eu particularmente não participarei desta segunda etapa do "como", pois não tenho conhecimento para tal. --Felipe da Fonseca (discussão) 17h35min de 9 de maio de 2018 (UTC)- Eu já havia falado sobre essa questão técnica em dois momentos da discussão, não insisti porque vi que não houve muito interesse. É possível fazer um módulo que substitui a
{{Info}}
, que faça tudo o que ela faz e adicionalmente possibilite usar dados do Wikidata simplesmente colocando o identificador da propriedade, por exemplo "P123" no campo, e todo processamento em relação a esse dado seria feito internamente pelo módulo, então seria uma única chamada do módulo que pegaria todos os dados, locais e do Wikidata, e montaria a infobox. Adicionalmente esse módulo categorizaria os artigos que de fato estejam usando os dados do Wikidata, o que ajuda no monitoramento. Mas como podem imaginar, fazer esse módulo não é tarefa simples, pode demorar meses. Eu posso desenvolver isso, mas não posso dar um prazo de quando ficará pronto. Danilo.mac(discussão) 18h03min de 9 de maio de 2018 (UTC)- Sim, eu imagino quão complicado deve ser, mas possivelmente é o único caminho, não? Eu posso tentar ajudar. --Stegop (discussão) 20h09min de 9 de maio de 2018 (UTC)
- Algumas coisas podem ser feitas com a
{{Info}}
atual, usando predefinições e módulos no preenchimento dos campos como é feito agora, algumas novas predefinições ou módulos podem ser feitos para algumas coisas que hoje ainda não é possível, como por exemplo a questão de pegar o valor da propriedade altura de acordo com seu qualificador (altura do pináculo ou altura arquitetônica). Outras como a categorização dos artigos que pegam os dados do Wikidata eu não consegui imaginar outra forma de fazer se não refazendo o código da Info. Uma das principais vantagens de ter tudo processado pela Info é que a edição das infoboxes temáticas ficaria mais simples, não precisaria passar o {{{get_wikidata|}}} para os módulos e predefinições que geram os campos por exemplo. Em algum momento eu precisarei de ajuda sim, o certo é envolver o máximo de editores possível nesse desenvolvimento para garantir que o módulo cubra as necessidades dos diversos tipos de infobox. Danilo.mac(discussão) 21h57min de 9 de maio de 2018 (UTC)
- Algumas coisas podem ser feitas com a
- Sim, eu imagino quão complicado deve ser, mas possivelmente é o único caminho, não? Eu posso tentar ajudar. --Stegop (discussão) 20h09min de 9 de maio de 2018 (UTC)
- Eu já havia falado sobre essa questão técnica em dois momentos da discussão, não insisti porque vi que não houve muito interesse. É possível fazer um módulo que substitui a
- Sim, outro exemplo seria
O texto acima foi movido de: Wikipédia:Esplanada/propostas/Utilização do Wikidata em infoboxes (5mai2018)
Ao trabalhar no protótipo {{Info/Edifício/Testes}}
dei-me conta que há uma série de coisas que convém tentar discutir antes de avançar para os ir buscar à Wikidata, nomeadamente quando há variações ou várias opções disponíveis, como no exemplo dado pelo Danilo sobre a altura. Mesmo que se acabe por constatar que as discussões não são muito participadas, elas têm que ser abertas, para tentar evitar conflitos, situações contraditórias ou pouco lógicas/coerentes e reversões muito trabalhosas por conta de decisões que depois se revelaram menos boas.
Embora as discussões sobre padronização sejam geralmente pouco participadas, um facto inegável é que, pelo menos nas infocaixas mais usadas se pode assumir com segurança que elas, na prática, resultam de um trabalho conjunto, muitas vezes não planeado e algo ad-hoc de muita gente ao longo de anos, frequentemente muito penoso e demorado — o Danilo e os outros que trabalharam nas {{citar}} que o digam — e não partir do que temos e, em vez disso, fazer forks, como as Info/Wikidatas é deitar para o lixo parte desse esforço de padronização e harmonização.
Creio que haverá casos em que temos que decidir qual é, por exemplo o parâmetro que consideramos a "altura" e outros em que podemos acabar por concordar que o melhor é criar novos parâmetros na infocaixa. Há ainda outras questões mais técnicas que não me pareceram nada triviais de resolver de forma realmente eficaz, como por exemplo quando há vários dados para o mesmo parâmetro. Veja-se, por exemplo o website oficial, que pode ser visto em {{Info/Museu/Wikidata/doc}}
— além do aspeto ser mau, o link leva para uma página de erro. {{Info/Edifício/Testes}}
prevê essa situação, mas é há muitas outras similares em que não o faz porque é mais complicado do que apenas chamar {{#property}}, Módulo:WikidataIB ou outra semelhante.
Outra situação que não implementei por não ser simples é a das unidades e da precisão. Por exemplo, salvo erro as datas e áreas podem ou não vir com precisão (+/-) e com ou sem unidades, quando o padrão adotado é a indicação apenas do número não formatado, o que em muitos casos pode provocar erros, sejam de formatação ou de cálculo, como por exemplo na densidade demográfica. As unidades tem ainda a complicação adicional do código que vai buscar dados ter que ter "inteligência" para procurar as unidades mais adequadas e eventualmente fazer conversões. E possivelmente esta lista de situações complicadas está muito incompleta, pois ela resulta apenas de algumas horas de trabalho de alguém que antes desta semana nunca tinha trabalhado nem em Lua nem com Wikidata. --Stegop (discussão) 23h47min de 9 de maio de 2018 (UTC)
Categorização automática:
- Categoria:!Artigos com infocaixas completamente do Wikidata é assim tão relevante? Porquê? Em todo o caso, há imensos artigos nessa categoria que têm dados que não vieram da Wikidata, pelo que as predefs atuais que estão a categorizar mal.
- É facílimo fazer uma categorização do tipo "artigos com infocaixas que usam a Wikidata". Basta que Módulo:WikidataIB suporte um parâmetro para fazer a categorização quando se são usados dados da Wikidata.
- A categorização "!Artigos com infocaixas completamente do Wikidata" também não é assim tão complicada, pelo menos comparando com o trabalhão que essas Infocaixas dão. Basta que haja um
{{#if:}}
enorme, com todos os parâmetros possíveis, do tipo:{{#if: {{{par1}}}{{{par1}}}{{{parN...|}}} || [[:Categoria:!Artigos com infocaixas completamente do Wikidata]] }}
--Stegop (discussão) 00h29min de 10 de maio de 2018 (UTC)
- A categoria "!Artigos com infocaixas completamente do Wikidata" aparentemente era um erro no Módulo:coordenadas, fiz a correção, se era só isso a categoria deve esvaziar dentro de alguns minutos ou horas. Eu tentei fazer o Módulo:WikidataIB categorizar quando o dado do Wikidata é usado, mas tive que reverter depois quando vi que deu erro em algumas infoboxes, pois o valor retornado pelo módulo está sendo usando dentro da
{{dni}}
e{{morte}}
, como tinha uma categoria junto com o número acabava dando erro na hora de a predefinição fazer o cálculo, então o único modo de fazer o WikidatIB categorizar é nunca usar o valor retornado dentro de outra predefinição, mas é pode ser difícil controlar isso. De fato é possível fazer a categorização somente com predefinição e ParserFunctions. A questão dos websites do Museu do Louvre (na Info/Museu/Wikidata/doc) o Ederporto resolveu alterando essa propriedade no Wikidata para ter somente um valor, mas é possível fazer um módulo que retorne sempre só um valor, se é que ainda não existe. As questões de conversão de unidades podem da mesma forma ser resolvidas desenvolvendo um módulo se ainda não existir. Enfim, dá para resolver muitas coisas sem recriar a{{Info}}
, é uma questão de escolher que caminho queremos seguir. Sobre a padronização, concordo que isso é importante e tem que ser bem discutido seja qual for o caminho a ser seguido. Danilo.mac(discussão) 01h40min de 10 de maio de 2018 (UTC)- Danilo.mac O código |maxvals=1 faz com que o módulo retorne só o primeiro valor inserido na propriedade no Wikidata (ou o primeiro valor preferido inserido, no caso de se estiver usando getPreferredValue). Quanto aos websites, têm uma restrição de valor único, que o editor que colocou vários ignorou. Ederporto (discussão) 02h26min de 10 de maio de 2018 (UTC)
Coloquei as ideias que tenho para a reformulação da {{Info}}
nesta página. Danilo.mac(discussão) 00h55min de 13 de maio de 2018 (UTC)
- @Danilo.mac:
Percebi apenas a ideias genéricas, mas não como é que vai funcionar. Sugiro duas coisas: i) mover essa discussão para Predefinição Discussão:Info, pois esse é local é muito mais apropriado para tal discussão do que uma subpágina de usuário; ii) criar um pequeno exemplo, pois é a forma mais fácil de clarificar o que propõe. --Stegop (discussão) 01h52min de 13 de maio de 2018 (UTC)
- @Stegop: Criei um tópico em Predefinição Discussão:Info#Módulo, não copiei toda a subpágina de usuário para lá porque achei que ficaria muita coisa, e também porque são apenas ideias que podem mudar rapidamente. Coloquei um exemplo na página. Danilo.mac(discussão) 21h03min de 13 de maio de 2018 (UTC)
- @Danilo.mac: são propostas de implementação da "proposta intermediária"? Se sim, supõe-se que vc concorda com a proposta, ou não necessariamente? --Felipe da Fonseca (discussão) 13h22min de 13 de maio de 2018 (UTC)
- @Felipe da Fonseca: São ideias para o desenvolvimento de um módulo que pode usar os dados do Wikidata de formas diferentes, quem for editar as infoboxes é que vai decidir quando que os dados do Wikidata são usados, então não tem uma relação direta com a "proposta intermediária". Danilo.mac(discussão) 21h03min de 13 de maio de 2018 (UTC)