Tema de Viquipèdia:La taverna/Ajuda

Algun voluntari per a fer una petita funció en LUA ?

41
Amadalvarez (discussiócontribucions)

Vull refer la {{bloc dimensions}} que és una plantilla que presenta les dimensions d'un objecte en format nn (↑) x mm (↔) x zz (/) a partir de la informació de fins a 5 propietats diferents de WD. Fins aquí, cap problema, ja ho fa.

Sovint, però aquests valors tenen un qualificador que indica a que es refereix la dimensió, per exemple: escultura o pedestal.

La funció demanada ha de recuperar tots els valors de les possibles 5 unitats (Amplada (P2049), Longitud (P2043), Alçada (P2048), Gruix (P2610), Fons (P5524)) amb el valor dels qualificadors, agrupar-les pel valor del qualificador i retornar la taula resultant.

Merci

Vriullop (discussiócontribucions)

M'hi he posat: Mòdul:Dimensions. De moment només recull dades i mostra la taula de treball: Special:Permalink/20239007. Ara falta treballar la taula per formatar el resultat, a més d'introduir paràmetres manuals. És un exercici interessant per recollir dades específiques de Wikidata d'una altra forma, sense usar el mòdul:Wikidata, tot i que s'aprofiten moltes idees.

Només he considerat el qualificador S'aplica a (P518). Què hauria de fer en un cas com Torre Eiffel (Q243). Hi ha més qualificadors?

Amadalvarez (discussiócontribucions)

De fet, fa temps que et volia demanar un upgrade del formatting table (o un mòdul a banda) que reculli més d'un joc de propietat + qualificadors, amb la particularitat de que l'ítem de la segona, tercera,... propietat pogués ser el resultat de la primera propietat. És a dir, no haver d'estar condicionat en la gestió de continguts per l'ontologia de les dades. Això de les dimensions és un cas clar. Quina culpa tinc que facin servir una Propietat per cada cosa i no una propietat (criteri de mesura= amb/sense marc, o últim pis habitable/punt més alt, escultura/pedestal, ....) amb qualificadors de dimensions en aquell punt/cas ?.

El qualificador correcte és P518. Hi ha alguns casos (<5% dels P518) que són Criteri utilitzat (P1013), però o no és el que busquem, o és un error (com l'Eiffel).

Vriullop (discussiócontribucions)

Ja està formatat, pot veure-ho a Special:Permalink/20239007 i començar a provar casos. Queda pendent la introducció de dades amb paràmetres.

Amadalvarez (discussiócontribucions)

Bravo, @Vriullop. No sé si has tingut en compte que fins ara només es mostraven 3 dimensions. Però ara hi ha 5 propietats en joc i en el cas màxim només s'han de mostrar 4 alhora.

A Plantilla:Bloc dimensions/casos tens les combinacions possibles i els casos de dimensions ambivalents.

Ja em dius com ho veus.

Vriullop (discussiócontribucions)

Havia seguit el criteri de la plantilla amb 3 dimensions i prenen per la 3a longitud, fons o gruix. He separat el gruix en la 4a dimensió i pel mateix preu hi he afegit el diàmetre: Special:Permalink/20243190.

Amadalvarez (discussiócontribucions)

De primera. Recorda que les unitats de mesura no tenen per que ser iguals. La plantilla mirava, si totes eren iguals la posava al final i si eren diferents, les posava darrera de cada dimensió.

Un altre aspecte a considerar és si cal conversió d'unitats. Això es contempla a infotaules geogràfiques que no criden al bloc dimensions que no fa cap conversió. Precisament una de les coses que havia d'afegir-li era això. Es fa mitjançant la Plantilla:Convert/variable on se li passa el valor i la unitat rebuda i se li diu la unitat desitjada.

Merci

Vriullop (discussiócontribucions)

Ja està previst que tregui totes les unitats quan no són iguals, però no he trobat cap exemple per provar-ho.

Sobre el convert no veig clar què hauria de convertir a què. Caldria una taula de conversions desitjades, tipus "ft -> cm".

Cal realment la introducció de paràmetres manuals? Estic dubtant si això deixar-ho per la plantilla i que el mòdul treballi només amb Wikidata.

Amadalvarez (discussiócontribucions)

Tal com ho tinc ara, és la infotaula qui li passa la unitat a convertir a la convert/variable. Si la unitat recuperada és igual a la demanada, no crida a la convert i fa l'edició directament. La unitat sol.licitada està ajustada per la infotaula en funció del concepte: edifici, muntanyes, etc. -->m., obres d'art --> cm., vial, trens, etc. m. o km.

Sobre els manuals, podem aplicar la màxima que tinc en altres temes amb un conjunt de dades: o tot manual o tot WD. Així l'entrada d'una dada manual anul3la l'accés a WD i pots estar perdent més que el que guanyes. És un altre incentiu a carregar les dades que tenim a WD i, com a premi, n'obtens altres dades. Un exemple són les proteccions patrimonials. Estic fent una revisió de centenars d'articles esborrant les dades manuals i, si no hi eren a WD, les traspasso.

Vriullop (discussiócontribucions)

Feta conversió via paràmetre extern: Special:Permalink/20244042. He hagut de fer un hack a Mòdul:Convert perquè l'original anglès no té previst l'ús via un altre mòdul.

En l'exemple que he usat he trobat una altra dimensió que no tracta Llum màxima (P2787). No costa gens anar-ne afegint, només que em quedaré sense icones.

Amadalvarez (discussiócontribucions)

t'agrada aquesta icona per P2787 ?. :

Això de violentar el Convert és una feina més a afegir al procés de migració a d'altres WPs. No podies cridar / adaptar el convert/variable i així afectem a una peça no comú ?

Entenc que és multillengua. és a dir, no hi ha cap text escrit directament ?. De fet, l'únic text són les unitats i, o bé surten de WD o del convert. Els noms del qualificadors, per exemple.

Vriullop (discussiócontribucions)

Afegida la llum: Special:Permalink/20245469. A més en aquest exemple es mostren les unitats quan són diferents.

Convert: en qualsevol cas resulta un hack horrible. La modificació al mòdul:convert l'he fet mínima, però l'ús via un altre mòdul resulta gairebé incomprensible. Podria desenvolupar-ho més. Crec que això s'hauria de fer a l'anglesa a la seva manera, però no em faran cas si no hi ha una necessitat real al seu wiki.

Via convert/variable em remou l'estomac. És cridar des d'un mòdul a una plantilla que fa de pont a un altre mòdul. A més, continua sent un hack horrible. Haig de reconstruir el primer paràmetre amb "valor+espai+unitat" per a que la plantilla el torni de separar via un tercer mòdul. Més inconvenients: el format a la plantilla:convert està fixat al format numèric català amb coma decimal i punt de milers.

El mòdul és multilingüe segons la llengua local del wiki en dos aspectes: 1) el codi de la unitat, tot i que la majoria prendran el codi anglès, 2) el format numèric.

Vriullop (discussiócontribucions)

També és multilingüe l'etiqueta del qualificador, és clar.

Amadalvarez (discussiócontribucions)

@Vriullop Proves:

  • casca quan no hi ha item
  • podries retornar el resultat en 3 variables: $0 el text format; $1 el nom del qualificador (Multilngüe ?); $2 el raw del valor del qualificador
  • Podria ser una variable el qualificador amb P518 com a default ?. Podrien ser dos valors en OR ?

Ja tinc preparat el canvi de la {{bloc dimensions}} per tractar els manuals i invocar el mòdul quan no hi hagin. Transició fàcil.

Vriullop (discussiócontribucions)
  • Suposo que peta quan ha de petar, és a dir, no perquè no tingui paràmetre item sinó perquè la pàgina no estigui connectada a cap element de Wikidata. Li he afegit una protecció per a que no intenti fer res en aquest cas.
  • M'hauries d'explicar com penses usar aquest format perquè no ho veig clar en cas d'una llista de valors.
  • Segur que els qualificadors són variables? Per tipus d'infotaula? O bé el mòdul ho hauria d'intentar sempre segons una llista de qualificadors?
Amadalvarez (discussiócontribucions)

1) si. estava en pàgina d'usuari

2) Vaja !. Estava pensant en un retorn en bucle com el table, però deus haver fet un únic bloc. L'objecte era poder separar (o no) en dues columnes per a que encaixés a la infobox, tal com fem amb les llistes amb data i concepte. Lo de demanar el raw és per preveure un hipotètic cas que volguéssim fer una acció específica amb una instància de la llista (una línia sencera): saltar-la, seleccionar-la,... El teu invent del formatting= table genera dependència

3) No estic segur que calgui variables, però la vida evoluciona i es creen noves propietats i tenir una cosa "cablejada" em fa cosa. Lo de tenir més d'una en OR és perquè hi ha molts errors d'utilització (d'interpretació, podríem dir) i la gent fa servir més d'una forma raonablement acceptable.

Vriullop (discussiócontribucions)

2) M'ho temia. Aquest mòdul és independent del Wikidata i no puc reproduir aquí el muntatge complex d'allà. Et recordo el títol d'aquest tema "...una petita funció..." Fins ara ha estat un exercici interessant que pot servir pel tractament de dades complexes en altres casos. A partir d'aquí pot ser empipador si no és per solucionar casos necessaris. Entenc que el resultat és per una cel·la "data" d'una infobox que ja té un "label" com "Dimensions". Es pot retocar el format, de fet tot és possible, però sembla més coherent que sigui un format uniforme i no un format obert.

2 bis) Quan tinguis un cas de l'hipotètic raw, en parlem per veure la millor solució. Pot ser més flexible via Lua que via plantilles.

3) No hi tinc inconvenient. Si és per un cas aïllat és millor via paràmetres. Si és un cas genèric, com en una infotaula, és millor actualitzar una llista a Lua.

Amadalvarez (discussiócontribucions)

Val, he provat de fer un poyaque. Ho farem com a data. Si et sembla, ja ho poso en producció per anar veient casos reals.

Amadalvarez (discussiócontribucions)

@Vriullop Pots veure proves complertes a Usuari:Amadalvarez/Infotaula_multiofici. Detalls:

  • depenent del zoom de la pantalla el text es talla i ocupa dues línies. Crec que haurien de fer un wrap de cada bloc xifra-icona. Als exemples els Pont dels màrtirs del 15 de juliol (Q4484) sempre queden bé perquè el que va a la 2a línia és un bloc complert, però The girl and the calf (Q44952465) depenent del zoom se li queda separat un "(" de la resta.
  • M'he estat rellegint la definició i aplicació de la Criteri utilitzat (P1013) vs la S'aplica a (P518) i el matís és subtil, però no m'atreveixo a dir tant categòricament que en el cas dels gratacels la P1013 sigui incorrecta. La P518 es refereix a parts diferents (pedestal/estàtua,..) mentre que la P1013 es refereix a un criteri/concepte tècnicament definit, ex.:Alçada arquitectònica (Q24192182), Màxim (Q10578722) o Eslora (Q2358152) en lloc de dir edifici vs agulla o antena. Dels 200.000 items amb P1013, només ens afecta a 114 referits a llargada i 86 referits a alçada. La resta no són de magnituds tractades aquí. Les 114 de llargada són del món nàutic (eslora, línia de flotació,..). Els 86 amb alçada són tots edificis llevat d'un cavall i un cotxe. Crec que si passem el P1013 a P518 assumint (com havia dit més amunt) que estaven malament informat, seria un error i objecte d'una reversió justificada. En conclusió, et demanaria que la P1013 fos tan vàlida com la P518 fent de qualificador. Disculpes.
Vriullop (discussiócontribucions)
  • Fet l'span nowrap.
  • Afegida una llista de qualificadors. A Mòdul:Dimensions queda al mig del codi, però es pot localitzar "local qualifiers = {"P518", "P1013"}" i afegir-ne a conveniència. Cal tenir en compte que amb qualificadors que afecten només una dimensió llavors el resultat queda en diferents grups en diferents línies. Prova amb HMS Ocean (L12) (Q1201247). Per cert, en els vaixells s'ens escapa Calat (P2262) i Mànega (P2261). Els afegeixo? El segon seria una alternativa a l'amplada.
Amadalvarez (discussiócontribucions)
  • Merci pel nowrap.
  • No ho fèiem servir a vaixells i per això no havia pensat, Però em sembla útil afegir més mesures i així estendrem el seu ús d'altres horitzons.
Vriullop (discussiócontribucions)

Fet, mànega com a alternativa a amplada i nou calat (). Per cert, veuràs que les icones tenen un text emergent amb el concepte i que pot canviar en dos casos: amplada/mànega i longitud/fons. Per simplicitat segons la llengua local.

Amadalvarez (discussiócontribucions)

Afinant molt, eh ?.

Ara miro infotaula vaixells a veure que tal encaixa.

Amadalvarez (discussiócontribucions)

Això és un no parar. Mirant vaixells he trobat Calat aeri (P2793) que, curiosament, només mitja dotzena són vaixells. La resta són ponts i és diferent a alçada. Com ho veus ?

Vriullop (discussiócontribucions)

Fet, amb la icona i canviant el calat per , tot i que les fletxes haurien d'anar al revés. La icona anterior tant podria indicar calat com mànega. Primer havia pensat posar el calat aeri com alternativa a alçada, pensant en els vaixells, però vist Viaducte de Millau (Q99236) ha de ser una nova dimensió. La denominació "calat aeri" no em fa el pes, sobretot si s'usa fora de l'àmbit nàutic. Cercant al Termcat crec que és millor "altura lliure".

Amadalvarez (discussiócontribucions)

Bé. El que dius de calat com a alternativa a alçada, seria un error.

Mirant els vaixells, allà l'Alçada (P2048) l'apliquen a puntal (vaixell) i la Longitud (P2043) és l'eslora. S'haurien d'enriquir els hints amb aquestes accepcions, perquè quan ho posi a la infotaula em carregaré totes les etiquetes que són explícites i enllaçades amb l'article, a sobre.

Vriullop (discussiócontribucions)

Si no hi són a WD no les puc posar. Cal que hi siguin o bé com a propietat o bé com a qualificador. Per exemple HMS Ocean (L12) (Q1201247) té la longitud amb "criteri utilitzat=eslora" i el mòdul ho treu amb l'etiqueta del qualificador. En canvi RMS Titanic (Q25173) no diu el criteri per l'alçada, si és puntal, calat aeri o total. Segons l'anglesa és des de la quilla fins a la xemeneia (calat + calat aeri), en canvi la nostra infotaula diu puntal segurament perquè és l'únic paràmetre.

Amadalvarez (discussiócontribucions)

Sembla raonable. Està clar que a la infotaula es va fer una interpretació acceptable, però insegura.

Ja miraré com anem de no-qualificadors. Les xifres ens parlaran.

Amadalvarez (discussiócontribucions)

P31=vaixell amb llargada hi ha 6.000 i només 3 amb eslora. Queda molta feina, encara que m'hi jugo un pèsol que el 90% són eslora.

L'alçada són figues d'un altre paner. Això del puntal (mida interior de quilla a coberta superior) només ho maneguem a la península ibèrica; no existeix traducció a EN ni n el Termcat. La resta del món fa servir calat (de quilla a línia de flotació) i francbord (de línia de flotació a coberta superior), és a dir, la suma dóna (aprox) el puntal.

Deixem-ho com ho tens; pots veure el Titanic a Viquipèdia:Pàgina de proves

Vriullop (discussiócontribucions)

Puntal sí que hi és al Termcat, traduït creux en francès i depth en anglès. Podria ser Depth (Q41770200) tot i que no dóna cap pista. A en:Hull_(watercraft)#Metrics en diuen moulded depth.

Bé, el que interessa és que tenim una estructura flexible que s'adapta als detalls que es posin a WD. Ara bé, a la infotaula de vaixells vés a saber quina alçada és en cada cas.

Amadalvarez (discussiócontribucions)

Sento lo del termcat. Ho he mirat amb poca atenció.

Si tenim article en anglès (a més de català) podrem anar contrastant i alimentant els qualificadors, però és feina de formigues. És el que he fet al Titanic, però a tots els vaixells serà una feinada.

Vriullop (discussiócontribucions)

Ja que estem amb terminologia, fa poc vaig fer una revisió al Viccionari sobre:

Tot i que es poden intercanviar com a sinònims, per interferència del castellà, cadascuna té un sentit principal.

Amadalvarez (discussiócontribucions)

Si s'ha de canviar, per comoditat triaria alçària, què és genèric. Altrament haurem de crear tractaments excepcionals.

Tu mateix, no tinc manies ni coneixements lingüístics suficients.

Vriullop (discussiócontribucions)

M'estic embolicant amb la nomenclatura. El concepte de calat aeri l'he trobat en un diccionari marítim com a "guinda", coherent amb el DIEC. Veient l'amic que va crear l'article està clar que "calat aeri" és un calc del castellà, alhora un calc de l'anglès. Ho he canviat a guinda (Q2446632).

La Gàlib (P2793) es refereix en concret a ponts, no vaixells. L'he canviat de "calat aeri" a "gàlib". El concepte és similar a Llum màxima (P2787) però referit a la superfície de l'aigua. No he trobat cap propietat per la "guinda" de vaixells i s'ha estat usant incorrectament la P2793.

Resumint, prenent com a referència les dimensions indicades a Mòdul:Dimensions/ús, crec que m'hauria de carregar la P2793 i posar-la com alternativa a "llum màxima". Per a vaixells guinda (Q2446632) hauria d'estar com a criteri usat per Alçària (P2048).

Amadalvarez (discussiócontribucions)

Interpreto que P2793 és supropietat d'Alçària i Llum màxima ho és d'amplada, per tant, mantindria el seu tractament.

Una altra cosa és revisar i corregir l'ús que se'n fa aplicada a vaixells i l'eliminem.

Vriullop (discussiócontribucions)

I tant. Bé la P2793 sí que s'usa en ponts i caldrà mantenir-la. O com alternativa de calat per usar la mateixa icona, o canviant a calat i gàlib,

Amadalvarez (discussiócontribucions)

Està bé aquest canvi d'icona.

Amadalvarez (discussiócontribucions)

@Vriullop Seria molt difícil inhabilitar (via paràmetre) la visualització del diàmetre ?

A la infotaula edifici, quan tractem un telescopi, el diàmetre fa referència al del mirall i ho poso al bloc d'"activitat", ja que no parla de l'edifici, sinó del seu ús. M'interessaria m'interessaria anul·lar-lo quan no em convingui mostrar-lo i fer el tractament individual de forma tradicional, allà on vull que es mostri.

Aquesta situació ja em passa amb altres propietats, però gràcies al whitelist/blacklist els manego amb total facilitat, però en aquest cas, la lectura de WD la fa el "dimensions".

No és de vida o mort. És perfeccionisme.

Merci

Vriullop (discussiócontribucions)

Quin és el cas? No tinc clar si cal filtrar per dimensió o per qualificador. En un edifici pot tenir sentit el diàmetre d'una torre rodona.

Amadalvarez (discussiócontribucions)

Filtre per qualificador = Qnnnnnn. El cas és un observatori amb telescopi. El diàmetre sense qualificador seria el que aplica a l'edifici o, si tingués més d'un punt de mesurament (base i cúpula), també seria de l'edifici i el mòdul mostraria dos blocs de mesures.

Ara bé, el telescopi de l'observatori també té diàmetre (de fet pot tenir fins a 3). Per mostrar-los, ja ho faig amb un table + whitelist, però es tracta d'ocultar-los del tractament general.

Però que si ha de quedar un codi massa "ad hoc", ho deixem i que surti barrejat.

Vriullop (discussiócontribucions)

Fet amb blacklist=Qnnnnnn/Q...

Resposta a «Algun voluntari per a fer una petita funció en LUA ?»