Vés al contingut

Mòdul Discussió:Wikidades

El contingut de la pàgina no s'admet en altres llengües.
De la Viquipèdia, l'enciclopèdia lliure
(S'ha redirigit des de: Mòdul Discussió:Wikidata)


A voltes amb els whitelist

[modifica]

@Vriullop: Consti que només és una consulta per veure si m'engegues o és molt fàcil. Estic fent proves amb la Categoria relacionada (P7084) per veure si paga la pena fer-la sevir per generar categories des de WD. Soc conscient que si la resposta és que Sí paga la pena, l'eina que l'exploti s'haurà de fer en LUA perquè cal programar de debò i probablement sense passar pel Wikidades. Però per fer un descarte ràpid i saber redactar els requeriments de l'eina, estava testejant les diferents situacions amb crides via mòdul. Dit això. Una de les situacions és detectar si totes els valors del qualificador P642 són els que li pregunto (és a dir, whitelist comportant-se amb AND); com que això no és possible perquè treballen amb OR, he posat dos cops la P642 com a qualif1, qualif2 i tampoc m'ha funcionat, perquè jo tenia al cap que entre qualificadors funcionaven amb AND, però aquí ja quedava clar que no. La pregunta és: a) Et passa pel cap alguna trampa per aconseguir saber que els qualifs P642 tenen A i B (i C, si fos el cas) ?. o b) Seria FÀCIL fer que la relació entre acompliments de qualificadors fos un AND, ni que fos en proves, pel que comentava més amunt?. Gràcies, --amador (disc.) 08:52, 4 feb 2022 (CET)[respon]

Vist per sobre, estem tornant al tema de qualificadors múltiples. V.Riullop (parlem-ne) 09:40, 4 feb 2022 (CET)[respon]
No era la intenció. Pots fer una solució "ad hoc" al cas comentat?, en proves o amb una altre nom. I així evitem situacions estranyes en casos normals. T'animes?. Si no vols embolicar-te, ho entendré i ja trobarem altra forma de verificar el funcionament. amador (disc.) 19:36, 4 feb 2022 (CET)[respon]
Quan torni a casa i em posi al dia. Via mòbil és impossible. Posa'm un exemple per entendre-ho millor i poder fer proves. V.Riullop (parlem-ne) 20:02, 4 feb 2022 (CET)[respon]
Disculpa, @Vriullop. No m'ha arribat notificació i jo m'he distret amb altres fronts. A Plantilla:Amadalvarez/traduccions 1 tens un cas.
No desesperis si et sembla que han fet un muntatge molt complicat per determinar la categoria que li correspon a un article. Precisament per això intento provar si dona cobertura raonable al 80% de les categories més habituals.
Per contextualitzar: hi ha una colla de propietats que indiquen la categoria que correspon a UNA condició específica (nascuts/morts per localitat, persones que han estudiat a ..., etc.) per no inflacionar el sistema de propietats, van fer una propietat comodí (P7084) on la condició no està en el nom, sinó que està en el qualificador P642.
Quan només hi ha una condició, és a dir, quadres de Fulano, ja ho he provat i pot ser útil, però per fer categories tipus: arquitectes catalans modernistes, cal que el filtre siguin diverses P642 i s'acompleixin totes per saber que la categoria aplica al cas.
Si arribem a la conclusió que el muntatge de la P7084 és prou sòlid per casos més complexos i compatible amb el fet que dues wikis categoritzin amb criteris diferents, la meva investigació haurà acabat, perquè seria de bojos pensar en fer això amb una plantilla. Es tractaria d'explicar com ho hauria d'utilitzar un bot com el del Pere (o un mòdul invocat des dels articles) per saber quina categoria ha de posar sense tenir-lo codificat cas a cas, com li passa ara, ja que podríem "parametritzar externament" les condicions.
Bé, ja estàs al cas. Si penses que és més fàcil una versió sacrificant funcionalitats, tu mateix. L'abast de la prova està molt focalitzat i no ha de servir a futur. Gràcies, amador (disc.) 19:47, 11 feb 2022 (CET)[respon]

M'agafes en mal moment. Anoto l'anàlisi previ, sinó després no m'en recordaré. La consulta d:Q34636#P7084 amb q1=P642 dóna ara "edifici". Amb les proves anteriors de multiqualificadors "edifici, Girona". El problema no és el whitelist sinó haber de tractar un valor que és una llista. La solució passa per separar la llista en diferents columnes, $1=edifici, $2=Girona. Sent sota demanda (list1=true) pot servir per altres casos. V.Riullop (parlem-ne) 13:38, 12 feb 2022 (CET)[respon]

OK, @Vriullop.
A la guait. Gràcies, amador (disc.) 07:36, 13 feb 2022 (CET)[respon]
No sé si encara és necessari. He fet un primer intent:
  • {{#invoke:Wikidades/proves|claim| item=Q34636 | property=P7084 | qualifier=P642 | formatting=table | list=1 | list1=2 | rowformat=$1$2 | whitelist1=Q41176 Q7038 | whitelist2=Q41176 Q7038 | editicon=false}}
Ho tradueixo. Amb list1=2 està dient que del qualificador1 tregui dos valors en dues columnes $1 i $2, tot i que la $2 no està definida. Es pot ampliar a més, però cal incloure-ho en el rowformat. El whitelist amb dos valors OR s'aplica a les dues columnes resultant un AND. En qualsevol cas, l'opció de listx pot servir en altres casos multiqualificadors que sempre ens ronden. V.Riullop (parlem-ne) 14:41, 10 març 2022 (CET)[respon]
@Amadalvarez V.Riullop (parlem-ne) 14:44, 10 març 2022 (CET)[respon]
Ho tenia aparcat, però ho rearrancaré.
Quan dius "és pot ampliar.." vols dir que ho hauries de fer, o que li puc posar un list1=3 i manegar $1,$2 i $3 ?
A veure si puc fer alguna prova per convèncer el @Pere_prlpz per construir el fil de treball del seu bot, tot i que quan li he explicat la teoria, opina que això de la P7084 té poc recorregut. Bé, a mi em cal una prova per veure-ho clar. Merci, Et tindré informat. amador (disc.) 22:03, 10 març 2022 (CET)[respon]
@Amadalvarez: Potser estic desactualitzat, però crec recordar vam parlar de categoritzar automàticament per centre educatiu o per premi (ara ja no sé quin dels dos va ser el primer) hi havia un problema insoluble que era que era massa car (o difícil, no ho sé) comprovar amb Lua si una categoria existia, i això per una única categoria. Això segueix essent així o ara és fàcil comprovar si existeix una categoria? Si és factible, ja podríem implementar la categorització automàtica per premi i centre educatiu perquè tenim molt poques categories d'aquestes subcategoritzades.
Una cosa molt més fàcil que categoritzar per dos criteris fent servir P7084 és fer servir les propietats de lloc de naixement i lloc de la mort (i les de les categories) per categoritzar per un sol criteri. Ara bé, com que les categories poden estar subcategoritzades per qualsevol criteri, el codi hauria de comprovar que l'article no estigui en cap de les subcategories, per tal d'evitar posar categories redundants. Si mirar totes les subcategories de catalans per assegurar que l'article ja hi sigui és més fàcil del que era fa uns mesos comprovar si només existia la categoria d'estudiants de la Universitat Pompeu Fabra, aleshores es pot fer.
Amb dos criteris o més la cosa es complica una mica més, però si es pot categoritzar per un criteri, es deu poder fer amb dos. Hi ha les pegues addicionals que la majoria de les categories no estan informades a Wikidata i que hi ha casos problemàtics que cal evitar (per exemple, encara no he aconseguit distingir les categories d'artistes premiats de les d'obres premiades). De les 8544 categories de biografies per dos criteris que ara identifica el bot, només unes 1600 es poden identificar amb la propietat de tema relacionat a Wikidata i la resta les identifica pel nom. Si ara ho hagués de tornar a fer possiblement em saltaria el pas de consultar aquesta propietat a Wikidata, perquè a més de vegades dóna errors.
Tot això suposant que el que vulguem fer amb Lua sigui complementar la categorització que han estat fent els editors humans les darreres dècades. Si el que vols és substituir l'esquema actual de categories per unes altres categories o una altra cosa, aleshores el problema tècnic es deu simplificar, però passa a ser el menor dels problemes.
I si voleu veure què fa el bot, els codis són a https://github.com/pere-prlpz/viquipedia --Pere prlpz (disc.) 22:34, 10 març 2022 (CET)[respon]
@Vriullop: Disculpa totes les molèsties, però reconec que no m'hi podré dedicar. Tinc masses fronts oberts que em costa tancar i millor que em dediqui a fer net, que a obrir-ne de nous. La línia de treball és el bot del Pere i les avantatges que addicionalment podia aportar la propietat que estava analitzant, no són clares. T'agraeixo, com sempre, l'esforç per mirar d'encaixar una proposta esbojarrada. A veure si la propera és més fàcil i/o útil. Salut ! amador (disc.) 07:09, 15 maig 2022 (CEST)[respon]

complex query

[modifica]

Hi @Vriullop: , Please : How to write a query that need multiple values for 'list' parameter. Example :Some thing like : bestrank & 3 values only in the same time.

An other point, in the doc we can see that 'qualifier' is an alias for qualifier1. But the use of 'qualifier1' has no effect.

Example :

it can be corrected in line 1196 with : qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or ""))

Thanks. --وهراني (disc.) 15:32, 7 abr 2022 (CEST)[respon]

@وهراني Qualifier1 fixed, thanks.
For list=<number> it should assume bestrank, but currently it doesn't. Pinging Amadalvarez, right? To introduce multiple values is not feasable, it should be split into new parameters. V.Riullop (parlem-ne) 11:18, 8 abr 2022 (CEST)[respon]

Hide answers like "no linguistic content"

[modifica]

Hi @Vriullop:, is it possible to add a global blacklist (stored for example in Module:Wikidades/i18n ) in order to avoid some answers like "no linguistic content" (Q22282939). --وهراني (disc.) 00:25, 9 abr 2022 (CEST)[respon]

Hi. I don't know if @Vriullop will attend your suggestion. However, I'm right now “externalizing” any kind of internal values of the code, via module:itemgroup. Their functionalities are inspired in i18n concept, but just to hold values under a key name. Invoke within the code exchange key by value. So, any wiki project may have its own version of Itemgroup with the filter values (white/blacklist), its icons to be used, or setting parameters to alter the logic of code "in function of" custom.
The doc of the module is in catalan, but the comments in code are english. The module should not be change by project. The Itemgroup/list, Itemgroup/parent and Itemgroup/groups hold the particular values for each wiki language in the 3 different functionalities of itemgroup :
  • List: one key returns a list of values; for white/blacklist.
  • Groups: one value (usually a Qid) is searched in a list and return the name of the group where founds; to act by concept (for instance, it uses icon "event", icon "meeting", icon "award"..), defining which Qids of P31, or whatever, are in each group).
  • Parent: Similar to a Group but searching in ascendant by a property tree, typically P279, instead have a list of Qids.
These 3 submodules contain all the variables for all the projects templates. So, the dictionary of setting parameters are grouped.
You can see some uses in template:Infobox_event and template:Infobox_event/formatglobal or template:Infobox_election/core, for whitelist and template:Infobox_election where make the setting of icons and colors to use in a template where description have been changed by icons in order to save space, but giving freedom to select the icons by each version. Any help you need, just ask to me. Salut !, amador (disc.) 07:07, 9 abr 2022 (CEST)[respon]
@وهراني By the way. If you don't mind, consider to use these two infobox: event & election. They are oriented to be used without changes, just setting its Itemgroup and its Templatestyles (well, RTL has not been tested, but I'm willing to implement your suggestions). See the examples to know their multi-pourpose functionalities: {{Infobox event/example intro}} & {{Infobox election/example intro}}. Awaiting reply, amador (disc.) 07:19, 9 abr 2022 (CEST)[respon]
@Amadalvarez Thank you for your quick answer. If i understand the meaning of your suggestion, I'm forced to review and change all my templates. Is it correct ? وهراني (disc.) 15:47, 9 abr 2022 (CEST)[respon]
Not exactly. Your @Vriullop suggestion is for a very specific problem, and perhaps it makes sense to solve as you say. I don't know how difficult is, because I know nothing of LUA. I'd wait for the Vriullop answer.
However, your petition reminded me of when Vriullop gave me this kind of "magic wand" to solve a lot of funny suggestions I did to externalize just data, without code. And, immediately, I wish to share it.
I believe that this tool could help to reduce customize settings among versions. I implement it when I make a big review of templates, step by step. No hurry. Sorry if I mispronounced and caused confusion. Salut ! amador (disc.) 19:32, 9 abr 2022 (CEST)[respon]
@وهراني It makes sense to me to suppress Contingut no lingüístic (Q22282939) or any other future placeholder with no significant content for infoboxes. Please, provide an example of a query to understand better the use case, and in order to make some tests. V.Riullop (parlem-ne) 10:39, 11 abr 2022 (CEST)[respon]
@Vriullop here is an example :
@وهراني Sorry for the delay. Done Special:Diff/30076575 with definition "suppressids" at /i18n, and also assuming bestrank for list=<number>. V.Riullop (parlem-ne) 10:35, 22 abr 2022 (CEST)[respon]
@Vriullop Good job thank you for this effort. But for list param, I think that spliting into new parameters is the best choice. In this case, for example, I can't get normal with best rank together with list=<number>. وهراني (disc.) 16:22, 22 abr 2022 (CEST)[respon]
@Vriullop I made some modification on Mòdul:Wikidades/proves. Please give me your opinion. وهراني (disc.) 17:45, 22 abr 2022 (CEST)[respon]
Great. You're right, reusing and argument for different purposes is always a bad idea. Some comments:
  • I've renamed to listmax and listrank for better understanding of backwards compatibility.
  • Currently, default list=true implies all preferred and normal values, so I have removed the default listrank=bestrank.
  • It is better to clean parameters at the beginning for using them properly afterwards, avoiding compatibility confusions.
  • It is fine to define qseparator/qconjunction, but default values in a table is weird. Separator may have HTML makups not suitable for qseparator. The sandbox page has a link to Mòdul:Wikidades/proves/test/ús for a quick check of some infoboxes with current use against the sandbox version. The query {{#invoke:Wikidades/proves | claim | item=Q17163 | property=P166 | qualifier1=P585 | formatting=table | rowformat=* ($1) $0 | separator=<br/>}} was broken with default qseparator=<br/>. It is not the best example, but the first one I encountered. I have removed the default qseparator=separator for formatting=table checking again args.qseparator. V.Riullop (parlem-ne) 10:28, 25 abr 2022 (CEST)[respon]
Thank you @Vriullop.
One last thing, how to hide answers showing QIDs ?
Example - Q12240055 in this case :
. وهراني (disc.) 20:18, 25 abr 2022 (CEST)[respon]
There are some options to deal with missing labels. At /i18n you can define additional fallback languages. Not really a solution when English is missing, but it resolves some cases. For Catalan we have added Romance languages that a learned reader can understand or at least to guess its meaning. Also, at i18n you can define categorylabels for tracking missing translations. Anyway, Categoria:Pàgines amb etiquetes de Wikidata sense traducció/Q is hard to clean and there are new items endlessly. To drastically hide all Qids as labels, it is necessary to define a new formatting=noqidlabel. I have tried it on sandbox Special:Diff/30103861. V.Riullop (parlem-ne) 11:59, 26 abr 2022 (CEST)[respon]
@Vriullop for me, I just add new line
if not labelcase then return '','' end
between line 805 & 806 . وهراني (disc.) 16:18, 28 abr 2022 (CEST)[respon]
@Amadalvarez, Paucabot: I think it is time to consider that Categoria:Pàgines amb etiquetes de Wikidata sense traducció/Q can not be cleaned at all, and it is too hard to maintain with new items added with no label in English. As a result, it is not useful information for readers if experienced users can not provide a translation. Some options:
  • Hide Qid labels optionally by query with parameter formatting=noidlabel.
  • Hide Qid labels per wiki settings at /i18n.
  • Hide them always.
In any case, the category can be substituted by a tracking Template:track/wikidata/label/Qid via Special:WhatLinksHere, if necessary. My first thought with caution was the first option, but after checking some of these labels I think User:وهراني is right, they can all be removed without hesitation, and they will appear again when they have a translation at least, and probably, in English. V.Riullop (parlem-ne) 20:58, 28 abr 2022 (CEST)[respon]
First option is rare, because it assumes that some specific query has usually no label.
The second one is my option because has the same effect as the third but allow each project to decide.
I agree with change category to tracking.
In addition, I thing that a best practice may be take care of non english labels in items with our own language label in order to reduce this situation in other languages (search haslabel:ca -haslabel:en).
Thanks for the job done. amador (disc.) 21:30, 28 abr 2022 (CEST)[respon]
i agree with amador, the second option is the best one. وهراني (disc.) 16:40, 29 abr 2022 (CEST)[respon]
Done. I have removed the tracking template. If the label does not appear in the infobox it is hard to find which is the label not translated. If needed, it can be added on request. Also, the function returns nil. A void value also works, but it could be misinterpreted in lists at some point. V.Riullop (parlem-ne) 11:39, 4 maig 2022 (CEST)[respon]

Recovery in qualifierx = / Pid (again)

[modifica]

Hi @Vriullop, I want to use this query to get followers :

  • {{#invoke:Wikidades|claim|item=Q69943|property = P3450|qualifier=P156 or /P156| formatting=table|rowformat = $1}}Temporada 2012 de Fórmula 1 Modifica el valor a Wikidata (correct answer)
  • {{#invoke:Wikidades|claim|item=Q12198711|property = P3450|qualifier=P156 or /P156| formatting=table|rowformat = $1}} → (no answer but a value exist for Property P156)

is there any mistake ? وهراني (disc.) 12:50, 23 juny 2022 (CEST)[respon]

@وهراني: In the second one, P3450 does not exist, so it does not try to retrieve any qualifier. But:
  • {{#invoke:Wikidades|claim|item=Q69943|property = P3450 or P156|qualifier=P156 or /P156| formatting=table|rowformat = $1}}Temporada 2012 de Fórmula 1 Modifica el valor a Wikidata (same answer from the first two ORs)
  • {{#invoke:Wikidades|claim|item=Q12198711|property = P3450 or P156|qualifier=P156 or /P156| formatting=table|rowformat = $1}}1987–88 Iraq FA Cup (en) Tradueix Modifica el valor a Wikidata (it retrieves P156 twice as $0 and $1 from the second two ORs)
--V.Riullop (parlem-ne) 13:38, 23 juny 2022 (CEST)[respon]
Ets un geni !! amador (disc.) 17:38, 23 juny 2022 (CEST)[respon]
@Vriullop Thank you very much. وهراني (disc.) 19:09, 23 juny 2022 (CEST)[respon]

'number of statements' in claim function

[modifica]

Hi @Vriullop, in some cases (specially in filtering), I get wrong answer to 'number of statements' in claim function. The result is always the global number of claims.

I think that some modifications in line 1501, by calculating 'result_query' on the base of the variable 'result' not 'rowlist'. وهراني (disc.) 11:50, 23 jul 2022 (CEST)[respon]

here an example. One result but result_query = 6. --وهراني (disc.) 16:52, 23 jul 2022 (CEST)[respon]
Fixed. I don't remember why it was done from rowlist. The solution is simpler and coherent. Note that with function numStatements there are no filters, and probably I didn't pay attention. V.Riullop (parlem-ne) 17:28, 23 jul 2022 (CEST)[respon]
@Vriullop Thank you for this quick correction. But I 'm still getting result_query = 6 for my last example !!! وهراني (disc.) 21:53, 23 jul 2022 (CEST)[respon]
It works for me. In the debug console of your sandbox =p.test() returns 5 as second value or 1 with English in user preferences. Note that default language is wiki language in main namespace and user preferences language in other namespaces. How do you get 6? V.Riullop (parlem-ne) 08:59, 24 jul 2022 (CEST)[respon]
@Vriullop Sorry I mean 5 (not 6). I think that, for one value we must have '1' as result, if I use this query in main namespace. وهراني (disc.) 19:09, 24 jul 2022 (CEST)[respon]
@وهراني d:Q7156#P1449 has 1 value in English and 5 in Catalan, so result with list=lang depends on lang used:
  • {{#invoke:Proves/Vriullop|test|lang=ca}}: Error de l'script: la funció "test" no existeix.
  • {{#invoke:Proves/Vriullop|test|lang=en}}: Error de l'script: la funció "test" no existeix.
  • {{#invoke:Proves/Vriullop|test|lang=ar}}: Error de l'script: la funció "test" no existeix.
  • {{#invoke:Proves/Vriullop|test}}: Error de l'script: la funció "test" no existeix. (default lang)
V.Riullop (parlem-ne) 19:36, 24 jul 2022 (CEST)[respon]
@Vriullop I'm really sorry - you have right. thank you once again. وهراني (disc.) 19:49, 24 jul 2022 (CEST)[respon]

Looking for the article

[modifica]

Hi @Vriullop, I want to correction the following query to get an answer if an article exist not only the label.

Query
{{#invoke:Wikidades|claim|item=Q102904|property=P2184|lang=ca}}
Answer
history of volcanology (en) Tradueix Modifica el valor a Wikidata

is't possible? thanks. وهراني (disc.) 11:51, 29 ago 2022 (CEST)[respon]

  • {{#ifexist: {{#invoke:Wikidades|claim|item=Q102904|property=P2184|lang=ca|formatting=sitelink|editicon=no}} | yes | no}}: no
  • {{#ifexist: {{#invoke:Wikidades|claim|item=Q102904|property=P361|lang=ca|formatting=sitelink|editicon=no}} | yes | no}}: yes
With Lua:
:local sitelink = require("Module:Wikidades").claim{item='Q102904',property='P2184',lang='ca',formatting='sitelink',editicon='no'}
:if mw.title.new(sitelink).id == 0 then
:   return 'no'
:else
:   return 'yes'
:end
:
or, avoiding an expensive function, as formatting=sitelink returns a Wikidata link if no sitelink is found:
:if string.sub(sitelink, 1, 2) == "d:" then
:
V.Riullop (parlem-ne) 12:33, 29 ago 2022 (CEST)[respon]

Why one answer ?

[modifica]

Hi @Vriullop, can you explain to me, why the following query give only one result ?

{{#invoke:Wikidades|claim|item=Q207461|property = P1269 |qualifier = P1269/P47|formatting = table|rowformat = $1}}

result : Andorra Modifica el valor a Wikidata

Thanks. وهراني (disc.) 13:00, 13 set 2022 (CEST)[respon]

@وهراني: multiple values in a qualifier can not be handled properly. We have discussed it several times to conclude it has not any convenient solution. Pinging Amadalvarez, any hack to deal with this case? I'am afraid you should do two consecutives queries. V.Riullop (parlem-ne) 15:37, 13 set 2022 (CEST)[respon]

Thank you @Vriullop. وهراني (disc.) 16:17, 13 set 2022 (CEST)[respon]
@وهراني: Alternative solution:
{{#invoke:Wikidades|claim|property=P47|formatting=bestrank|rowformat=$0|item={{#invoke:Wikidades|claim|item=Q207461|property = P1269 |list = bestrank |formatting = table |editicon=no |colformat0=raw |rowformat = $0}}}}
Gives: Andorra, Portugal, Marroc, França, Gibraltar, Mauritània, Unió Europea, Lliga Àrab, Regne de Portugal, Algèria i Regne Unit Modifica el valor a Wikidata
Useful ? . amador (disc.) 17:04, 13 set 2022 (CEST)[respon]
Yes it's useful, I'll convert it in lua language. thank you @Amadalvarez. وهراني (disc.) 17:16, 13 set 2022 (CEST)[respon]

Wikidata Bridge

[modifica]

Bon dia, @Vriullop: Hauries de desactivar l'enllaç a Wikidat Bridge des del pencil, ja que aquest projecte està aparcat al somni dels justos i tal com ho tenim treu una pantalla intermèdia que desorienta. Salut ! amador (disc.) 05:58, 23 set 2022 (CEST)[respon]

Buah, un altre projecte fallit. Em semblava massa ambiciós. La darrera notícia és mw:Topic:W4qa1211haasnsyt. De totes maneres, com que som l'únic wiki on està activat, ho he deixat per les dades tipus string, l'únic que funciona tot i ser el menys útil. A Andorra només s'activa pel prefix telefònic. V.Riullop (parlem-ne) 08:15, 23 set 2022 (CEST)[respon]
OK. On funciona no molesta. Salut ! amador (disc.) 21:18, 24 set 2022 (CEST)[respon]

no sé aplicar o no em funciona el gender

[modifica]

Hola, @Vriullop. Crec que ho faig igual que altres cops, però no deu ser cert, perquè els càrrecs de les conselleres surten amb el genèric. Mira special:permalink/30857409. Merci amador (disc.) 23:16, 30 oct 2022 (CET)[respon]

Diria que en una taula no ha funcionat mai, almenys en els darrers dos anys no s'ha modificat i ja fallava. Fixa't que itemgender és general, en substitució de item, i per tant només comprova el primer: Pere Aragonès. No he trobat cap cas per provar-ho però si fos una dona aplicaria el femení a tota la taula. No està previst un itemgender per cada fila de la taula. Caldria estructurar-ho, potser itemgender4=$0 però no és evident com aplicar-ho. V.Riullop (parlem-ne) 09:52, 31 oct 2022 (CET)[respon]
Bé, @Vriullop. Segurament mai ho havia fet en taula. Doncs apliquem un bypass: special:permalink/30875895. amador (disc.) 22:07, 3 nov 2022 (CET)[respon]
Em sorprèn la capacitat que tens d'explotar-ho. Això s'ha convertit en un pseudollenguatge i em recordes quan vaig començar amb Clipper 5 intentant big data avant la lettre. V.Riullop (parlem-ne) 08:08, 4 nov 2022 (CET)[respon]
Sí, però el creador del pseudollenguatge has estat tu. Jo només soc un deixeble aplicat. Gràcies amador (disc.) 08:50, 4 nov 2022 (CET)[respon]

Notació de fracció

[modifica]

@Vriullop Saps com aconseguir obtenir una xifra tipus 1/4000 quan el valor és 0,00025 ?.

He mirat numformat=, però no he sabut trobar-ho. L'operació és elemental (1 ÷ valor recuperat), però no puc muntar-ho dins l'invoke perquè perquè quan el valor > 1 no aplica, i perquè hauria de fer un muntatge per afegir "1/" davant el resultat. Si no hi ha un format preexistent, ja faré una subplantilla i la cridaré des el rowformat.

Cas: https://www.wikidata.org/wiki/Q93428008#P6757

Merci, amador (disc.) 07:10, 8 des 2022 (CET)[respon]

No és tan elemental, poden sortir uns xurros. Ho he provat amb Lua: {{#invoke:Proves/Vriullop|dec2frac|0.00025}} dóna 1/4000, però si fos per exemple 1.00025 surt 4000/3999, o amb 0.0003 és 1/3333. Depèn de la precisió que vulguis: amb {{#invoke:Proves/Vriullop|dec2frac|0.0003|1e-8}} és 3/10000. V.Riullop (parlem-ne) 10:57, 9 des 2022 (CET)[respon]
En aquest cas concret: només s'ha de fer en format fracció si és < 1; el numerador de la fracció sempre és 1.
Si hi hagués forma d'indicar-li, podríem tenir una solució general, altrament hauria d'aplicar aquests criteris i només servirà per aquest cas de la velocitat d'obturació de càmeres. amador (disc.) 18:38, 9 des 2022 (CET)[respon]
He fet Plantilla:Proves amadalvarez/Prova4 que invoca el teu mòdul només quan es donen les condicions, des del rowsubformat crido la plantilla...... i funciona !!
Mira Canon EOS 850D.
Si ho vols endreçar el mòdul comme il faut, ja ho tindríem.
Et sembla ? amador (disc.) 19:14, 9 des 2022 (CET)[respon]
Ok. Amb valors que se suposa que originalment són fraccions no hi ha d'haver cap problema. Ho he modificat perquè només converteixi valors menors d'1 i que tregui sempre que pugui fraccions d'1. Dilluns pensaré si ho integro al Wikidades amb numformat=fraction i formatting=raw necessàriament per defecte. V.Riullop (parlem-ne) 20:09, 9 des 2022 (CET)[respon]
OK. Espero. Merci amador (disc.) 20:49, 9 des 2022 (CET)[respon]
Bé, m'he trobat que amb numformat=fraction sí que funciona, però aquest paràmetre no està habilitat per a taules. Ho canvio per case=fraction, tot i que no sigui la solució més elegant ho podràs usar com case2=fration en lloc del rowsubformat2, o independentment d'aquest si fes falta. Falta carregar-ho en viu:
{{modificació protegida}} Cal actualitzar Mòdul:Wikidades/i18n amb la versió en proves Especial:Permalink/31042197 (diff) V.Riullop (parlem-ne) 09:08, 12 des 2022 (CET)[respon]
Fet Fet! --LouPeter (discussió) 10:30, 25 des 2022 (CET)[respon]
@Vriullop Això ja ho tenim.
Quan ho he canviat pensava que tot i que jo havia fet servir el rowsubformat, perquè és on puc manipular, en realitat hauria d'estar com colformat. Però tampoc cal ser massa ortodox i tenir un case per una cosa excepcional, ja és el que toca.
Bon Nadal ! amador (disc.) 20:29, 25 des 2022 (CET)[respon]
[modifica]

Es podrien afegir els idiomes de WD, potser com a opció, a formatting = weblink tal com apareixen a {{Infotaula programari}} (Exemple: Lunar Linux)?

Relacionat: Plantilla Discussió:Oficial#Importar llengües de WD. Pau Cabot · Discussió 17:58, 29 gen 2023 (CET)[respon]

No sé si t'he entès bé. Si és per simplificar la crida es pot fer amb una plantilla:weblinkwithlang. Proves: Especial:Permalink/31256993. La diferència amb el codi de la infotaula és que evita indicar "(català)", fins i tot si està en valors múltiples. V.Riullop (parlem-ne) 16:14, 31 gen 2023 (CET)[respon]
Diria que ja és això. La idea seria poder-ho usar per mostrar els idiomes (si estan informats) als peus de les infotaules i a la plantilla {{Oficial}}. Potser, per mantenir com ho fèiem fins ara manual, es podrien usar les plantilles de la Categoria:Plantilles d'indicació d'idioma. Pau Cabot · Discussió 17:33, 31 gen 2023 (CET)[respon]
El problema d'usar plantilles per llengua és que a Wikidata hi ha coses rares, com d:Q565#P856 (múltiples llengües) o d:Q631#P856 amb 6 llengües, una d'elles "llengües sinítiques". Els valors múltiples en qualificadors són difícils de tractar. Veuràs que per filtrar si existeix en català ha de fer una operació rebuscada. De fet aquestes plantilles es basen en {{Indicació d'idioma}} que simplement aplica un estil que es pot replicar: Especial:Diff/31257534. V.Riullop (parlem-ne) 18:27, 31 gen 2023 (CET)[respon]
D'acord, idò. El que s'hauria de fer primer és crear la plantilla? Pau Cabot · Discussió 22:39, 31 gen 2023 (CET)[respon]

foto i peu desaparellat

[modifica]

Hola @Vriullop, pregunta per a que no et rovellis. NO és un error del mòdul, però sí un comportament inconvenient.

  • Tenim una imatge multi-valor, el primer no té cap qualificador (peu de foto) i el segon valor, sí.
  • Per motius imperatius, recupero la imatge i el peu en dues crides diferents.
  • a la primera (P18) em recupera la primera imatge
  • a la següent (P18+P2096) em recupera el peu de la segona foto, ja que la primera no en té i el list=false no s'acompleix amb la primera, però si a la segona.
  • he provat amb list=1, però el resultat és el mateix.

Algun truqui per ensarronar el mòdul? (si és que això és possible en una màquina perfecta com aquesta). Tinc un pla B fent parsering, però preferia no afegir cripticitat al codi.

Cas de proves a: special:permalink/31526147

Salut ! amador (disc.) 08:07, 9 abr 2023 (CEST)[respon]

La solució passa per incloure el file en la taula, per assegurar que és el mateix, i mostrar només caption. Cal repetir-lo com a qualificador perquè no existeix rowsubformat0:
  • qualifier1=file, qualifier2=caption
  • rowformat=$1, rowsubformat1=$2
V.RiuLlop (parlem-ne) 11:18, 9 abr 2023 (CEST)[respon]
Sabia que t'havia de consultar.
Jo he recuperat rowformat=$0↔$1 i he encerclat el resultat amb un {{Str_split|resultat|↔|2}}.
Ara ho canvio.
Gràcies mestre !. amador (disc.) 14:40, 9 abr 2023 (CEST)[respon]
@Vriullop Em sembla que no m'ha funcionat. La versió actual és una mica més farcit (que no complicat) que abans, perquè a més del peu, també es mostra la data i la localització. Però no hauria de ser per això.
Mira special:permalink/31528416:
  • la primera versió és tal ho havia fet amb l'str split
  • el segon és la teva solució (si l'he entès bé)
  • el tercer només era per comprovar que no hi hagués algun problema amb el rowsubformats, posant a rowformat, allò que havia d'estar a rowsubformat1. Aquest si que ho mostra.
Dedueixo doncs que lo de posar la imatge com qualificador no li ha fet el pes. Consti que jo ho he fet altres cops, per exemple, per recuperar amb dos formats diferents.
Si ho trobes.... amador (disc.) 17:42, 9 abr 2023 (CEST)[respon]
El qualifier1 ha de ser /P18, sense la barra és un qualificador simple. V.RiuLlop (parlem-ne) 18:05, 9 abr 2023 (CEST)[respon]
Seré inútil !!!.
Gràcies. amador (disc.) 18:23, 9 abr 2023 (CEST)[respon]

template not expanded

[modifica]

Hi @Vriullop, Here an example where the template is not expanded. {{#invoke:Wikidades|claim|item=Q164338|formatting=table| rowformat=$0 $1| property=P1705| qualifier=P898 |colformat0={{((}}Lang-$language{{!}}$text{{))}} }}

the answer is : {{Lang-ja|新幹線}} ɕiŋkaꜜɰ̃seɴ Modifica el valor a Wikidata the template is not expanded here.

but no problem with this one : {{#invoke:Wikidades|claim|item=Q164338| property=P1705|formatting={{((}}Lang-$language{{!}}$text{{))}} }}

it return and expanded template : japonès: {{{1}}} Modifica el valor a Wikidata

where is the problem? --وهراني (disc.) 21:44, 3 maig 2023 (CEST)[respon]

@وهراني This is a hard one, I should look it more in depth. With formatting table it only expands templates included in rowformat:
{{#invoke:Wikidades|claim|item=Q164338|formatting=table| rowformat={{((}}$0{{))}} $1| property=P1705| qualifier=P898 |colformat0=Lang-$language{{!}}$text }}
returns:
japonès: {{{1}}} ɕiŋkaꜜɰ̃seɴ Modifica el valor a Wikidata
The reason is a protection in line 330 with comment "only expand braces if provided in argument, not included in value as in Q1164668". That is d:Q1164668#P3228 with value {{3}}. Local function expandBraces has two arguments: text and formatting. The last one is only used for this protection. In your example, from line 1520 formatting="$0 $1" so it skips the expansion. When called directly without table then from line 1523 formatting="{{((}}Lang-$language|$text{{))}}" and it continues with the expansion. I should review expansions with table formatting.
Also note that {{!}} does not work locally in expansions. Template:! was deleted locally as now it works as a magic word. But it works with Lua require as it is not preprocessed, with template:! if not locally deleted or directly |. Ping Amadalvarez, any problem with expasion of {{!}}? V.RiuLlop (parlem-ne) 11:06, 8 maig 2023 (CEST)[respon]
Thanks @Vriullop, I don't have problem with {{!}} because i use directly | in a lua module. Your suggestion helped me to find a solution --وهراني (disc.) 12:04, 8 maig 2023 (CEST)[respon]
@Vriullop, No problem, I usually use it in rowformat expansions. amador (disc.) 18:09, 8 maig 2023 (CEST)[respon]

Error de Lua: Collision for array key 1 when passing data from Lua to PHP

[modifica]

@Vriullop El tractament de la Guanyador (P1346) a la {{infotaula competició esportiva}} té múltiples varietats segons esports, resultats, i alguns continguts que requereixen ser presentats com a labels. Actualment hi ha 4 invokes (immensos) amb una estructura similar i algunes variacions. Per simplificar he creat una prova a special:permalink/32118652 amb l'invoke que falla en unes circumstàncies que no sé detectar perquè funciona en casos similars. Per focalitzar, he fet proves eliminant propietats al rowformat i l'error desapareix quan li elimino un If que hi ha al començament. Hi ha 3 casos al test:

  1. l'IF s'acompleix
  2. l'if NO s'acompleix i funciona
  3. l'if NO s'acompleix i NO funciona

Després de la redacció que has llegit, he fet un descobriment sorprenent: quan l'item que figura com $0 no té label-CA és quan dona error !!. No vull pensar que només és per això, perquè tenim milers de casos així; intueixo que el fet que el $0 estigui dins l'If deu tenir algun efecte.

Ja em diràs, Gràcies, amador (disc.) 12:25, 30 juny 2023 (CEST)[respon]

Doncs sí, no ho pot expandir:
{{#if: {{{existeix}}} | 1 = {{{existeix}}} | 2 = [[d:Special:EntityPage/Q6356176|<span style="color:#5f9cbb;">Anexo:Palmarés de la Copa del Rey de fútbol</span>]] <sup>(es)</sup> [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|Tradueix|link=https://www.wikidata.org/wiki/Q6356176?uselang=ca]][[Category:Pàgines amb etiquetes de Wikidata sense traducció]] <span class="penicon">[[File:Arbcom ru editing.svg|10px|baseline|Modifica el valor a Wikidata|link=https://www.wikidata.org/wiki/Q483794?uselang=ca#P1346]]</span> }}
No és un processador wiki sinó que ho intenta amb una funció a la qual li passa els paràmetres. Resulta que en troba no 2 sinó 11 comptant totes les barres. Per fer-ho bé caldria diferenciar diferents tipus de plantilla a expandir. Les expansions solucionen certs problemes, però no tenen les mateixes funcionalitats wiki i cal ser prudents. Ho he intentat canviant a un OR en el qualificador, tot i que es carrega les cometes. V.RiuLlop (parlem-ne) 13:54, 30 juny 2023 (CEST)[respon]
Genial !. Veient la causa, una altra via és amb editicon=no, però no m'agrada perquè no avisa que és altra llengua i pot confondre en casos com aquest. M'estimo més la teva solució i perdre les cometes no sembla una crisi. Gràcies !. amador (disc.) 18:08, 30 juny 2023 (CEST)[respon]

Mala passada del infoboxlabel

[modifica]

Hola @Vriullop tinc posat un case=infoboxlabel per tractar els noms de disciplines esportives d'Enduro que vaig afegir a local infoboxlabels . Ha anat bé. Però els salts i llançaments d'atletisme s'han espatllat perquè contenen un "de / d'" dins el text (llançament de javalina, salt d'alçada, llançament de disc femení, ...) i els tracta el codi local function fixInfoboxLabel(label) de la línia 250 i seg. De moment ho he resolt eliminant la preposició del label WD però el resultat és una mica cutre i algun dia passarà algú i ho modificarà. Alguna idea per a que no apliqui aquest codi en concret? amador (disc.) 00:03, 10 jul 2023 (CEST)[respon]

Em sembla que això d'eliminar el complement amb preposició ho vam fer per les entitats administratives. Hi ha dues opcions. Una és separar-ho en dos case diferents creant un infoboxlabeladm perquè només aquest elimini la cua. Una altra opció és afegir-ho a la taula infoboxlabel que ho tracta literalment sense fer-hi cap canvi. Per cert, hi veig definits bastants casos de label amb "(enduro)". Això no cal perquè ja ho elimina la function fixInfoboxLabel, tant la cua amb preposicions com la cua amb parèntesis. V.RiuLlop (parlem-ne) 08:29, 10 jul 2023 (CEST)[respon]
@Vriullop val. S'han invertit els termes. Ara he tret els (enduro) perquè s'arreglen directament i he afegit <text> = <text> a la infoboxlabel pels casos amb preposició a conservar.
Separar-lo en un altre case seria útil si discriminés entre cua amb parèntesi i la resta, ja què a la mateixa propietat tinc les dues situacions: parèntesi que vull treure i preposicions que s'han de quedar. Per a fer això hauries de trencar en dos el codi actual de function fixInfoboxLabel i llavors tindríem 3 combinacions: aplicar (), aplicar "de", aplicar totes dues. Massa complicat.
De moment tiro així i si s'incrementen els casos amb preposicions a protegir, ja en parlem. amador (disc.) 17:09, 10 jul 2023 (CEST)[respon]
Bon dia, @Vriullop. M'he repensat la teva proposta de separar.
  • Els casos amb preposició on l'infoboxlabel no em fa bon servei han anat augmentant i no és pla de fer créixer exageradament la taula amb la solució <text> = <text>, on darrerament he incorporat casos d'autèntic canvi de valors per escurçar labels massa descriptius i llargs.
  • Els casos de (enduro) i similars que ja m'estava bé que els netegés, ho he canviat i ara els neteja la infotaula amb un {{title without disambig}} i per tant, ja no em cal la funció d'eliminació.
Llavors, proposta: separar-ho en dues opcions com deies al primer missatge. La diferència és que proposo tenir una tal com actua ara i una altra on només miri taules sense aplicar el codi de les preposicions.
El motiu és que actualment només la fan servir la {{infotaula organització}} i {{infotaula geografia política}} (i pàgines de proves); en tots dos casos per reduir el nom del càrrec del polític que governa. Ara bé el que no puc assegurar és que un dia no ens calgui fer aquesta transformació via taula.
Així tindríem: una que faci allò que fa ara que es faria servir allà on ja hi era i una altra que només miri taules i no apliqui codi que faria servei a la {{infotaula competició esportiva}}, de moment. El tema noms, et deixo triar a tu. Hi ha pocs llocs a canviar, però pensem en la compatibilitat amb versions instal·lades arreu.
Que et sembla?. amador (disc.) 07:18, 22 jul 2023 (CEST)[respon]
La idea que tenia és que el nou case faci el mateix però que només elimini automàticament els parèntesis. Dono per suposat que són desambiguacions innecessàries i a més rares o inapropiades en general per una etiqueta de Wikidata. Parèntesis a banda, no hi ha diferències entre el que deia i el que dius. Resultarà que el nou case serà el general i l'actual més específic, per això deia d'intercanviar-los. Es pot sincronitzar sense gaire problema. Per la compatibilitat amb altres versions, cal pensar que els case es defineixen a /18n i, en aquest cas, dirigeix a /labels. Per un nou case, amb el nom que sigui, cal sincronitzar aquests dos mòduls. Per tant, el nom que tingui no afecta la compatibilitat. A més, el tema de les preposicions és específic per cada llengua. La definició feta pel català pot funcionar pel castellà, per exemple, però per casualitat amb unes regles innecessàries. Pel bretó o pel basc no funcionarà ni sé si els cal.
En qualsevol cas, m'hi posaré d'aquí a 10 dies. V.RiuLlop (parlem-ne) 12:42, 22 jul 2023 (CEST)[respon]
@Amadalvarez A més de les dues plantilles que dius, m'he trobat que el mòdul usa case=infoboxlabel per defecte en la funció getParentValues. Aquest és el cas que més recordava quan obté l'arbre d'entitats administratives. No m'agrada perquè el getParentValues també s'usa per a altres coses, però millor no ho toco, són massa canvis coordinats. Deixo infoboxlabel tal com està i en creo un de nou infoboxlabelplain. Ja funciona en proves afegint sandbox=1 en una consulta. Queda pendent de Mòdul Discussió:Wikidades/i18n#Sol·licitud de modificació protegida 7-08-2023. Un cop estigui activat, tu mateix pots actualitzar Mòdul:Wikidades/labels a partir de Mòdul:Wikidades/proves/labels. Si entremig no hi ha més canvis, és aquest diff. Amb això ja estarà disponible el nou case. V.RiuLlop (parlem-ne) 09:51, 7 ago 2023 (CEST)[respon]
@Vriullop Primer test superat. Vaig a canviar-ho arreu i et confirmo. A més m'acabo d'adonar que també fa un ucfirst que em feia falta i ho havia d'aplicar a mà, ja que els case no admeten 2 cases. Oi que no?. Merci, amador (disc.) 17:36, 7 ago 2023 (CEST)[respon]
@Amadalvarez No admet dos cases. Si ho dius per l'ucfirst, aquest no existeix. El que tenim és formatting=ucfirst que ja és independent dels case. Ara bé, si fos necessari es podria afegir case=ucfirst i tractar valors múltiples. V.RiuLlop (parlem-ne) 19:19, 7 ago 2023 (CEST)[respon]
Perdó m'havia confós amb formatting/colformatx=label+ucfirst.
Dels case dobles encara no estic segur de que calgui.
Tinc que fer servir un case gender, on el itemgender és el valor d'un qualificador. Crec que ja sé com fer-ho.
Però potser em caldrà un infoboxplain + gender. Haig de fer els canvis i desmuntar l'enrenou de duplicats que tenia al /labels i després tindré clar si cal (o no) una petició. Salut ! amador (disc.) 19:32, 7 ago 2023 (CEST)[respon]
Em sembla que amb un itemgender ja assumeix case=gender independentment de la definició. V.RiuLlop (parlem-ne) 19:52, 7 ago 2023 (CEST)[respon]
Sí, confirmat. posant itemgender + infoboxtableplain m'ha funcionat. Tot els temes d'aquest fil estan funcionant. Gràcies, vaig a passar-te un altre repte. amador (disc.) 22:22, 8 ago 2023 (CEST)[respon]

Sense valor i valor desconegut

[modifica]

@Vriullop No sé si has seguit l'epidèmia d'errors reportats a Mòdul_Discussió:InfoboxImage#Error_quan_la_imatge_no_existeix. La conclusió específica d'aquest tema és fàcil: No li passa res a aquest mòdul i són les infotaules que no filtraven "Sense valor" i "Valor desconegut" en les imatges. Ho he anat arreglant i, a banda de ser un rotllo, vaig fent. M'ha sorprès que hagin proliferat tants valors d'aquests, com si haguessin canviat algun criteri de fer-los servir més. Per exemple, posar "valor desconegut", perquè l'editor ho desconeix, em semblaria una perversió, però no descarto que ho facin. El que no puc filtrar són els casos que apareixen com qualificadors en una table i menys encara si són recuperats d'un item de nivell superior, com per exemple els escuts dels càrrecs polítics. Per posar un exemple, a Joaquín Balaguer Ricardo (Q147989), el càrrec de Vicepresident de la República Dominicana (Q52229486) tenia "valor desconegut" a la Imatge del segell (P158) i jo l'he esborrat sense compassió. És una solució que dura el que algú trigui a tornar a posar-ho. Seria possible tenir un case (o similar) que en la crida se li pugui dir si vols que retorni el "sense valor" (de fet l'únic útil per les infotaules, per indicar els inicis i fins de sèries) o si no vols que retorni cap dels casos: deprecated, sense valor i desconegut. Ja t'ho pensaràs, Salut ! amador (disc.) 22:50, 8 ago 2023 (CEST)[respon]

@Vriullop Per cert, quan feia provatures diverses, vaig intentar-ho amb el ignorevaluex, però o bé només funciona per entitats o no ho vaig saber escriure correctament. Podria ser una bona opció i, si ho féssim extensiu al blacklistx seria la bomba, perquè estalviaria haver de fer un niament d'ifs preguntant per validProperty.
Apa, Bon dia. amador (disc.) 08:15, 9 ago 2023 (CEST)[respon]
@Amadalvarez:
  • Efectivament la funció validProperty no considera novalue ni somevalue, però no tenim l'opció *validQualifier.
  • Hi ha un paràmetre shownovalue. Per defecte és true, amb valor false elimina el novalue, però no tenim cap *showsomevalue. En teoria hauria de funcionar també amb qualificadors. S'hauria de provar, però no sé trobar cap cas de prova.
  • Una declaració pot tenir: value, novalue o somevalue. És a dir, no hi ha un valor "novalue" i per això no funciona amb ignorevalue ni blacklist. L'única forma que hi ha ara per eliminar tots els no/some value és amb formatting=raw, perquè no tenen cap Qid (tot i que ara n'he trobat algun com Concept of no-value in Wikibase (Q19798647) o Descripció pel no-valor (Q28343326), però seria desvirtuar la lògica d'una consulta).
Una opció seria ampliar el concepte del paràmetre shownovalue, o reutilitzar-lo com a *showvalues, perquè elimini tant novalue com somevalue. No em queda clar quin hauria de ser el valor per defecte. Sembla que els casos on es vol no/some value són limitats, i sembla també que shownovalue es deu usar molt poc. V.RiuLlop (parlem-ne) 08:38, 9 ago 2023 (CEST)[respon]
@Vriullop Mira si et serveixen aquest 4 casos per començar https://w.wiki/7Dd$.
Ara em llegeixo detalladament totes les opcions que comentes. amador (disc.) 10:45, 9 ago 2023 (CEST)[respon]
@Vriullop A special:permalink/32328917 tens dos utilitzacions en qualifs. amb novalue i somevalue. amador (disc.) 11:16, 9 ago 2023 (CEST)[respon]
Doncs es confirma que posant shownovalue=false en l'invoke no mostra la icona "cap valor", és a dir que ho té en compte per tota la taula. Caldrà estendre-ho a "valor desconegut" i evitar així consultes prèvies de validProperty. La qüestió és quina estratègia seguir. Seguim amb el shownovalue estès a *showsomevalue?, un nou paràmetre més explícit deixant l'altre obsolet?, canviem el valor per defecte? V.RiuLlop (parlem-ne) 11:35, 9 ago 2023 (CEST)[respon]
@Vriullop No ho tinc clar, perquè aquests casos que surten em semblen una anormalitat.
Novalue, al meu entendre, cal aplicar-ho quan ni ha existit ni existirà mai perquè el seu estat és no existir. El cas més clar és l'Anterior (P155) del primer element d'una sèrie. En aquest cas és una informació important perquè està dient que "és el primer". Ara bé, posar-ho a Fills (P40) d'Elisabet I d'Anglaterra (Q7207), tot i que és cert, m'és ben igual tenir-ho que perdre-ho, perquè als meus efectes, el resultat serà no mostrar res. De fet podrien haver posat novalue també a la Formació (P69) perquè ja no hi és a temps de formar-se'n. Seguint aquesta rigorosa regla, el 90% dels items haurien d'estar folrats de novalue a les propietats que podrien haver tingut i no va succeir.
A l'exemple de Vincent Tarzia (Q16886350) amb el shownovalue=no s'ha perdut un altre [inútil] novalue que tenia al qualificador Juntament amb (P1706). No m'explico perquè ho van posar, i perquè en aquest càrrec i no en el primer càrrec. Pensava que aquests valors obeïen a un canvi de criteri recent, però he mirat quan es va posar aquesta inutilitat i està des del 2018. A més m'he mirat tots els comentaris del xat i els únics comentaris apostant per la superpoblació són dels primers temps. Per cert, que he trobat un al·legat meu sobre el tema del 2017 !!.
Del somevalue m'estalvio els comentaris, perquè el seu ús és més fútil encara. M'he trobat recomanacions com aquesta: "If you really don't want to create an item (or if you don't want to create an item right now), a standard idiom would be to set P6 = somevalue, with qualifier referit com a (P1932) = <name>. ("Object" because they are the object of the statement). But as others have said above, do feel free to create an item." (2022 ! ).
En resum, si puc fer la carta als reis, tot i ser coneixedor que els pares no van sobrats de recursos, faria:
  • mantindria el shownovalue com està
  • crearia un showsomevalue independent. Això flexibilitzaria l'ús als invokes (posar dos paràmetres en lloc d'un, no em sembla un drama) i mantindria la compatibilitat amb possibles usos previs de shownovalue que continuaria fent el mateix.
Com l'utilitzaria ?.
  • Ho aplicaria als casos on l'aparició del text espatlla el seu ús (com a les imatges) i que ens obliga a fer servir la validproperty com una capa més d'ifs.
  • Ho aplicaria en casos on el volum de mals usos fos considerable i immanejable un a un.
  • El valor per defecte seria true, perquè si no, mai detectarem les maldats de les dades.
  • Si se'ns escapa algun valor sobre-informat i no fa mal estarem com ara que a Elisabet I d'Anglaterra mostra "cap valor" a cònjuge i fills i ningú s'ha queixat.
  • I si molesta sempre poden arreglar WD (esborra-ho, s'entén) o posar un NONE en el paràmetre manual i desapareixerà.
Ja em diràs que et sembla. Moltes gràcies per ser-hi !.
Salut ! amador (disc.) 19:40, 9 ago 2023 (CEST)[respon]
@Vriullop No m'he pogut estar de mostrar-te aquesta perla. Estan malalts. amador (disc.) 20:43, 9 ago 2023 (CEST)[respon]
Més fàcil, aquesta és la modificació mínima. Està funcionant en proves. Com que ara hi ha pont, ho deixo pendent fins dimecres. Per cert, he cercat la petició original, és Mòdul Discussió:Wikidades/Arxiu 4#To avoid "cap valor" in formatting=table del company d'arwiki. D'entrada ja eren problemes puntuals en taules. V.RiuLlop (parlem-ne) 15:57, 10 ago 2023 (CEST)[respon]

{{modificació protegida}} Cal actualitzar des de la versió en proves Especial:Permalink/32335465. Per poder traçar els canvis, en el resum d'edició: "Nou paràmetre showsomevalue, demanat a la discussió". --V.RiuLlop (parlem-ne) 08:15, 16 ago 2023 (CEST)[respon]

Fet Fet! Pau Cabot · Discussió 10:20, 16 ago 2023 (CEST)[respon]

A voltes amb les substitucions dins el rowformat. Un nou capítol

[modifica]

@Vriullop Començo per explicar l'objectiu perquè potser tens una drecera que desconec. Vull transformar el text que es mostra en els casos de la Freqüència (P2257) i, en lloc de dir "1 any", "1 mes" o "6 mesos", mostri "anual", mensual" o semestral". He provat:

  • Fer servir case infoboxlabel i, per si no era això, he provat infoboxdata. Cap funciona, entenc que estan orientats a formats entitats, no a numèric.
  • He fet una substitució "a mà" amb un switch del resultat (fora de l'invoke a wikidades) i funciona bé. Però no em serveix amb format table o amb construccions més complexes on no només hi ha el seu valor, sinó també es mostren valors de qualificadors
  • agafant la idea de la substitució manual, he posat les equivalències al mòdul:itemgroup/list, cridant-lo des del rowsubformat, i funciona perfectament:
  • Ara bé, quan el cas a transformar no està previst (ni ho estarà mai), vull que mostri el valor recuperat. Pel moment només he carregat els valors "1", per poder provar les excepcions amb qualsevol cosa que no sigui 1.
  • El cas el tenim a special:permalink/32425885 amb el cas d'infoboxdata (que mai mostra res) i el table amb $0, $3 i $4 recuperant la P2257 per provar diferents combinacions per si passava allò de "quan recupera aquest valor l'altre encara no el té".
  • Volia fer servir un IF al rowformat dient-li que mostri el resultat de la transformació o el recuperat.
  • Queda clar que l'invoke a l'itemgroup ha de tenir doble substitució, perquè si no, no fa res.
  • L'IF amb substitució simple sempre mostra el resultat del itemgroup i quan no existeix, lògicament mostra null.
  • L'IF amb substitució doble, mostra la crida al itemgroup com un text, és a dir, abans d'executar-lo.

S'accepten solucions, suggeriments i calbots. Venint de tu són afalagadors. Gràcies, amador (disc.) 10:32, 6 set 2023 (CEST)[respon]

Posa l'if a {{MyValue}}: if:invoke...|invoke...|{{{2}}}. Si vols estalviar un invoke, passa-li el resultat a una subplantilla que faci un if simple: MyValue/sub|invoke...|{{{2}}}. Si la plantilla ja s'usa en altres casos on interessa un valor nul, doncs una segona versió MyValue/default. V.RiuLlop (parlem-ne) 13:25, 6 set 2023 (CEST)[respon]
Resolt afegint paràmetre |default= a {{MyValue}}. No cal versionar, ja que és un paràmetre nou que no altera el funcionament dels usos previs. Documentació actualitzada.
Gràcies,@Vriullop, per la mirada lateral sempre tan refrescant. amador (disc.) 20:32, 6 set 2023 (CEST)[respon]

Filtres amb qualificadors multivalor

[modifica]

Discussió prèvia: Usuari Discussió:Vriullop#Torno a la càrrega amb els qualificadors multivalor {{modificació protegida}} Cal actualitzar Mòdul:Wikidades copiant-lo de Mòdul:Wikidades/proves que ja ha estat prou provat. El resultat és aquest diff. Com a resum d'edició per a comprensió de l'historial es pot posar: "Filtres amb qualificadors multivalor, demanat a la discussió". V.RiuLlop (parlem-ne) 10:31, 11 des 2023 (CET)[respon]

Fet Fet! Pau Cabot · Discussió 11:35, 11 des 2023 (CET)[respon]

Color text en altra llengua

[modifica]

@Vriullop On es defineix el color verd que tenen els monolinguals ?. A GLwiki no em surten i no sé que haig de configurar. Merci, amador (disc.) 07:40, 3 abr 2024 (CEST)[respon]

La documentació per monolingualtext diu que ho mostra <span lang="en">United...</span>. No hi fa res més, només hi afegeix l'span. El color verd és una configuració personal, la tens a Usuari:Amadalvarez/vector.css: span[lang] { color: green; }. L'explicació completa és a {{lang}}. Ho vam deixar com una opció personalitzable. V.RiuLlop (parlem-ne) 09:14, 3 abr 2024 (CEST)[respon]

Error LUA: Collision for array key 1 when passing data from Lua to PHP.

[modifica]

@Vriullop. He fet un invent per tractar l'Anomenat com a (P1810) quan es fa servir com a qualificador en un familiar del que només coneixem el nom i no es vol crear un item. Funciona bé allò que es volia aconseguir, però amb un efecte secundari quan els valors són una entitat (cas normal) i no té label CA, dona l'error esmentat. Tens dos casos per provar a special:permalink/33515087: un que funciona pels fills i no pel cònjuge i l'altre a l'inrevés. Gràcies ! amador (disc.) 21:23, 19 maig 2024 (CEST)[respon]

@Amadalvarez Peta per la plantilla del rowformat. És un problema vell, en aquest punt el Wikidades no pot fer de parser wiki. El resultat és {{if empty|1=|2=[[d:Special:EntityPage/Q1168080|<span style="color:#5f9cbb;">John of Valois, Count of Montpensier</span>]] <sup>(en)</sup> [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|Tradueix|link=https://www.wikidata.org/wiki/Q1168080?uselang=ca]][[Category:Pàgines amb etiquetes de Wikidata sense traducció]]}}. Per expandir-ho, el mòdul hauria de diferenciar si les barres verticals i els signes igual són sintaxi de plantilla o bé d'una altra sintaxi wiki. Les barres verticals encara les reconstrueix prou bé, sorprenentment, però peta amb els signes igual. Si hi ha etiqueta en català llavors funciona perquè desapareixen els iguals de link i uselang. És el mateix que afegir-hi editicon=false, que pot ser una solució provisional. Per fer-ho bé, caldria reformular la sintaxi de plantilles expandides dins del mòdul amb paràmetres específics tipus rowformat_template_name, rowformat_arg1_name, rowformat_arg1_value, etc. Això ja és un breaking point, un canvi major amb repercussions de compatibilitat. Cal assumir que aquesta expansió de plantilles és limitada, preferentment amb valors raw o sense format. En aquest cas, ifempty no deixa de ser un OR, però no li veig alternativa jugant amb $0. Hauria de veure un exemple amb P1810 per entendre-ho. V.RiuLlop (parlem-ne) 09:16, 21 maig 2024 (CEST)[respon]
@Vriullop Vistes les opcions: Special:permalink/33519390, faré servir l'editicon=no. Si vols explorar més, a l'exemple tens els 3 casos que es poden donar: cap P1810, tots P1810, barrejats. Merci, amador (disc.) 12:00, 21 maig 2024 (CEST)[respon]

bug with references

[modifica]

Hi @Vriullop: , I got an error with this query :

{{#invoke:Wikidades|claim| item = Q257330 | property = P106 | references = 3 }}

My proposition is to replace line L-1132 with :

refparts = refparts .. mw.ustring.gsub(getLabelByLangs(k, lang) or '', "^%l", mw.ustring.upper) .. ": "

Thanks.--وهراني (disc.) 15:25, 29 juny 2024 (CEST)[respon]

@وهراني: A reference with a deleted property is weird. Probably they missed it when moving to the new property d:Q257330#P8912. Anyway, it's always fine to add protections, even if unexpected. Thanks for the fix. --V.RiuLlop (parlem-ne) 08:31, 2 jul 2024 (CEST)[respon]

personalize "convert = M"

[modifica]

Hi, I propose New version of Wikidades with the possibility to personalize "convert = M" in Mòdul:Wikidades/Units.

Here is an example of the personalized version added to Mòdul:Wikidades/Units :

....
function convert2M(value)
    
    value = tonumber(value)
    if value == 0 then   return value    end

    local xmath_round = require("Module:Math").round

    if (math.abs(value) > 1E12) then
        return xmath_round({precision = 3, value = value / 1E12}) , " [[Trilió]]"
    elseif (math.abs(value) > 1E9) then
        return xmath_round({precision = 3, value = value / 1E9}) , " [[Bilió]]"
    elseif (math.abs(value) > 1E6) then
        return xmath_round({precision = 3, value = value / 1E6}) , " [[Milió]]"
    end

    return xmath_round({precision = 3, value = value}),""
end

return {
	getUnit = getUnit,
	convert_default = convert_default,
	convert2M = convert2M
}

I'm waiting for your opinion. This modification is already applied to the Arabic version. --وهراني (disc.) 22:13, 31 jul 2024 (CEST)[respon]

@وهراني I've made some tests at Special:Permalink/33738711. Current version makes sense with formatting=unitcode, but it doesn't without it. Your version solves it, but I'm not sure if it should apply only when there is no formatting=unitcode. Note that en:Billion has different meanings by language. It is not relevant here, but I've added to call it only in local language Special:Diff/33738679. Anyway the /Units module should be configured locally and the use in other languages is rare, mostly for test purposes. Ping Amadalvarez, any comment? It is used locally only in {{Infobox space program}}, but it has a potential use in economics data. Don't bother with current text, as it is configurable, with or without formatting=unitcode? V.RiuLlop (parlem-ne) 09:52, 1 ago 2024 (CEST)[respon]
We also have it in {{infotaula organització}}, line 455 & 3 more (economic figures) all of them with unitcode. Personally, I don't like billion / trillion because may be understood because of american meaning that is "too common" in TV news.
May it be possible to have both version (M / Mextended) ? amador (disc.) 11:27, 1 ago 2024 (CEST)[respon]

Tractar dates aC en un expr:

[modifica]

@Vriullop Intento condicionar un procés al fet que la data (en aquest cas la P571) sigui anterior a una any, per exemple, 1500. El problema és que la data torna editada quan són negatives, i ja envia "any aC" i la comparació dona error per no numèric. Treballava amb formatting "Y" i he provat amb un formatting que semblava més "raw", com la "c", però res. Alguna idea ? Merci, amador (disc.) 20:54, 5 set 2024 (CEST)[respon]

@vriullop. Si no és MOLT fàcil, oblida't.
He fet un if empty
|conté aC >>> és antic
|és < 1500 >>> és antic
|else, no és antic.
Solucionat per a aquest cas.

amador (disc.) 22:35, 5 set 2024 (CEST)[respon]

Això no està ben resolt. L'afegit "aC" és per formats llegibles que incloguin específicament l'any, en altres formats com "c" o "r" hauria de mantenir el signe negatiu. Amb format "raw" ho interpreta com la funció #time amb "r+a+w" sortint un xurro. M'ho apunto per quan estigui més rodat. De totes maneres, és punyetero fer operacions amb #time perquè només accepta el rang 1-1-111 a 31-12-9999. No es pot evitar fer manipulacions d'un valor raw com "-0069-01-13T00:00:00Z" per tractar-ho numèricament. Tingues en compte que aquest ifempty només seveix en català, l'aC és configurable a /i18n. V.RiuLlop (parlem-ne) 18:30, 18 set 2024 (CEST)[respon]
Et deia que "en aquest cas" ho havia solucionat perquè quan vaig analitzar els casos, només em calia saber si era > 1500, per tant em vaig estalviar fins i tot preguntar per l'aC. Però qui sap si un dia no caldrà fer operacions.
Salut ! amador (disc.) 22:06, 18 set 2024 (CEST)[respon]

GetLabelFix dins un invoke amb table.

[modifica]

Una imatge explica més que moltes paraules. Mira special:permalink/33920556. El primer codi funciona; dins mostra un text amb GetLabelFix (qualifier9) per fer d'etiqueta del valor.

Com que és susceptible d'aplicar-li gender, he afegit paràmetre itemgender=$13 que és el raw de la persona, que està en un qualificador.

L'error diu que no entén el que rep, però el Qid que mostra és correcte, per tant, dedueixo que deu haver algun caràcter o signe dins l'string que no se detectar.

Mira si pots posar llum a la foscor !. amador (disc.) 23:12, 9 set 2024 (CEST)[respon]

És un problema d'ordre d'execusió, primer fa la plantilla que retorna "L'ID «$13» és desconegut al sistema. Utilitzeu un ID d'entitat vàlid." i després fa l'invoke que substitueix el $13 sobre aquest text. La solució és forçar que l'expansió la faci el mòdul una vegada ja ha substituït la variable: Especial:diff/33961669. V.RiuLlop (parlem-ne) 12:26, 19 set 2024 (CEST)[respon]
@Vriullop Ets un geni!. Gràcies. amador (disc.) 13:39, 19 set 2024 (CEST)[respon]
Bon dia, @Vriullop. Quan es mouen armaris grans, sempre es trenca alguna pota.
Amb aquesta solució ha aflorat una altra de no prevista que, al meu modest entendre, sembla fàcil de resoldre.
Situació: Quan el $13 és monovalor funciona perfectament. Ara bé quan és multivalor a l'itemgender li estem passant Qid1, Qid2, Qidn i, és clar, no li agrada gens.
Segur que és possible d'arreglar. Però la pregunta és si seria fàcil que el contingut d'itemgender que agafa la function p.getLabel fos només el primer valor, seria una mena de protecció del contingut d'itemgender que és vàlid també en el cas d'utilitzacions "normals" com les que s'han produït fins ara. Què, t'agrada el repte ?.
Cas:special:permalink/34041983. Hi ha 3 casos multivalors. Els dos primers estan neutralitzats, perquè he deixat només 1 director (P4345) i la resta estan com a participants (P710). El darrer cas és la mostra a corregir.
De moment, em saltaré la feminització per no aturar la pujada a producció.
Gràcies !. amador (disc.) 08:15, 28 set 2024 (CEST)[respon]
@Vriullop T'ofereixo un pla B. Dins la plantilla {{GetLabelFix}}, es podria filtrar amb un regex que agafi els primers caràcters de l'esquerra del paràmetre {{{itemgender|}}} que tinguin un pattern 1 alfa + n numèrics, abans d'un caràcter no numèric (que seria el separador, habitualment una coma, però no cal arriscar).
Gràcies ! amador (disc.) 17:40, 28 set 2024 (CEST)[respon]
Ja ho faré en el mòdul, quan pugui. Tots els id provinents de paràmetres passen un filtre per tractar coses com Property:P123. Es tracta de millorar el filtre. V.RiuLlop (parlem-ne) 18:07, 28 set 2024 (CEST)[respon]
Pensant-ho una mica més, en el cas d'una llista el gènere de l'etiqueta no depèn del primer. Què passa si és Enriqueta i Xavier? V.RiuLlop (parlem-ne) 19:48, 28 set 2024 (CEST)[respon]
Com que el problema no té solució, el resultat més digne és que el gènere de director/a sigui coherent amb el primer nom que ve darrera. Dir directora: Xavier i Enriqueta, xoca més que a l'inrevés. amador (disc.) 20:18, 28 set 2024 (CEST)[respon]
Té solució. Si hi ha una llista d'id, el label hauria de ser en plural. Si tots els de la llista són dones, llavors plural femení. Si és home i dona o al revés, el plural masculí és el correcte. Prova-ho amb {{GetLabelFix/proves}} que invoca el Wikidades/proves i que afegeix case=plural si compta més d'un Qid. Pel wikidades simplement és repetir-ho en bucle per tots els id. Només ho puc garantir per la funció getLabel, però podria ser que funcionés per claim. V.RiuLlop (parlem-ne) 18:56, 30 set 2024 (CEST)[respon]
Caram, @Vriullop. Quina bona pinta !. Ets un preciosista.
A special:permalink/34054956 tenim totes les combinacions en casos reals.
Estava pensant que, si la WP no tenen plural, tampoc quedarà malament. Encerta més que en la meva opció.
Felicitacions, amador (disc.) 21:01, 30 set 2024 (CEST)[respon]
He traspassat el case plural al mòdul, ja no cal en la plantilla. En un wiki que no tingui case plural no farà res. Però tenim gl:Módulo:Gl-flexión que ho pot fer, només cal afegir possibles excepcions com Mòdul:Ca-flexió/plural. Miro d'activar-ho.
Ho passo a producció. Hi ha també dos temes anteriors: la funció convert2M que és opcional i per tant no afecta si no existeix, dates amb formatting=raw retona timestamp tot i que el cas estava solucionat és el que s'espera. V.RiuLlop (parlem-ne) 10:10, 1 oct 2024 (CEST)[respon]
@Vriullop Que vol dir que "no cal [plural] en la plantilla" ?. Parles del cas de l'itemgender, oi?. Perquè a la resta d'usos la GetLabelFix desconeix el valor del cas. És això?.
Ara ho pujaré a GLwiki, que està actualitzat a versió 20240702, feta el 25/9.
Merci, amador (disc.) 11:12, 1 oct 2024 (CEST)[respon]
Vull dir Especial:Diff/34060611, la mateixa comprovació de l'itemgender ja la fa el mòdul. V.RiuLlop (parlem-ne) 11:19, 1 oct 2024 (CEST)[respon]

{{modificació protegida}} Cal actualitzar copiant de Especial:Permalink/34060607 resultant el diff. Els canvis estan explicat en el mòdul, són relativament menors i han estat provats. --V.RiuLlop (parlem-ne) 10:16, 1 oct 2024 (CEST)[respon]

Fet per Leptictidium. --V.RiuLlop (parlem-ne) 10:24, 11 oct 2024 (CEST)[respon]