Vés al contingut

Tema de Usuari Discussió:Vriullop/Fitxer de Discussions Estructurades 1

Theklan (discussiócontribucions)

Estaba mirando el artículo automático de eu:Lionel Messi y en la lista de equipos de fútbol hace un pequeño lío al encadenar las selecciones nacionales con los clubes deportivos. Y he pensado... bueno, si hago una switch en el que cada vez que el és instància de (P31) de uno de esos membre de l'equip esportiu (P54) sea selecció nacional de futbol (Q6979593) pues entonces... entonces qué? Pues nada, que me he quedado ahí. Podría meterlo en un switch y ponerle una banderita, pero claro, para eso primero tengo que conseguir que los datos pasen en formato "label" o "raw" a ese switch... y además estaría en las mismas.

Así que he pesando... seguro que existe una manera en LUA de discriminar las selecciones de los clubes, y me puedo hacer con ello dos apartados diferentes en el módulo.

Pero no se LUA. Así que te pregunto... es una idea loquísima, o es factible?

Vriullop (discussiócontribucions)

No se me ocurre ninguna solución inmediata ni fácil. Como usuario de Lua, imagino que haría falta poder definir algun filtro y sacar dos tablas, una con instance=Q476028 y otra con instance=Q6979593, o bien con tablesplit=P31 para separar por cada instancia. Como Luarra, esto necesitará tiempo y ver casos de aplicación. @Amadalvarez: com ho veus?

Amadalvarez (discussiócontribucions)

@Theklan Mas allà de tu libertad para hacer lo que quieras, cual és el motivo de quererlo separar ?.

En todo caso, no me parece que Messi tenga una WD modèlica, y quizás se podria cuestionar algun detalle. Si hacemos caso del esquema que hice para trabajar las infotaulas de deportes (y a los deportistas-viquipedistas les ha parecido correcto), los jugadores no pertenecen al club, sino al equipo (porque un club puede tener muchos equipos y de diferentes deportes, aunque lo habitual sea 1). Por tanto, el Futbol Club Barcelona B (Q10467) no és un club como dice, sino un equipo; y Messi no està en el primer equipo (que se asume que es el Futbol Club Barcelona (Q7156)) desde el 2004, sino desde el 2005 o 2006. Bien, después de este rollo, si a la primera pregunta has respondido "porque lo quiero separado y punto", te diria que se puede hacer a mano, sin las facilidades de formato que nos ha suministrado el Vriullop. Yo lo aplico en los edificios para que, si tienen Patrimonio de la Humanidad en estatus patrimonial (P1435), salga siempre el primero. Aviso que me pegué esa matada porque no existia el formatting=table, que si no.....

Otra solución (no la he probado) seria añadirle un qualificador (por ej. classe de competició (p2094)) diciendo si és equipo o selecció y hacer sortable por ahi

A disposar,

Theklan (discussiócontribucions)

Bueno, @Amadalvarez no es que lo quiera separado... es que en la mayoría de Wikipedias se separan estas dos cosas: clubes (o equipos, eso es otro debate interesante) y selecciones. Porque en principio solo puede jugar en un equipo cada vez, pero puede estar al mismo tiempo siendo de una selección y de un equipo.

Así lo tenéis por ejemplo en Neymar da Silva Santos Júnior. Clubs juvenils, clubs profesionals y selecció nacional.

No solo eso. Si tengo cada elemento por separado, también puedo tratarlo, poniendo las banderitas del Barça, del Athletic o de Brasil. Si están todas juntas, como las veo ahora, no se me ocurre como poder tratar cada elemento (que se puede hacer con un switch).

Amadalvarez (discussiócontribucions)

@Theklan porque piensas que (CA-WP) los deportistas no funcionan con la infotaula persona y todos los demas si ? porque són complicados para explotar WD. El diseño de las infotaulas totalmente manuales permitia cosas que dan mucho trabajo si las quieres mantener usando WD. Per contra, usar WD con pequeñas renuncias estéticas, ha generado un ahorro de esfuerzos en mantenimiento brutal. Por eso inicie el proceso de cambio de las infotaules de deportes poco a poco y intentando explicar la complejidad. Puedo entender lo de selección/equipo, però lo de juvenil/alevin/profesional..o consta com un qualifier del jugador en el equipo o no se podrà hacer. Piensa que hay equipos que no cambian de nombre y dentro suyo tienen categorias o disciplinas que, como atributo, no són del club, ni del jugador, sinò de la conjunción de club-jugador-periodo. No sé si alguien se ha encontrado antes con esto y como lo ha resuelto en WD. Sabes como lo hacen en WP-ES, que tienen una infotaula persona bastante sofisticada ?

Theklan (discussiócontribucions)

No, si eso ya lo sé! Solo estaba pensando en lo que nos ahorraríamos, sobre todo en deportistas, teniendo todo a mano. A mi me parece que en realidad no es algo tan difícil, ya que todas las selecciones nacionales tienen el és instància de (P31) con selecció nacional de futbol (Q6979593). Es decir, con poder separar las que tienen esa condición de las que no, ya tendríamos suficiente. Otra opción sería hacer una monstruosa lista de equipos de fútbol (que se cargan porque en la WD ya pone que su deporte es fútbol) con un switch y que cada uno tuviera delante pues banderita si es una selección o bandera del equipo para los más conocidos.

Pero para eso también necesitaría tener el equipo de futbol en un formato label para poder aplicarle ese switch.

En cuanto a la WP-ES... veo que con los futbolistas usan una plantilla más bien manual.

Amadalvarez (discussiócontribucions)

@Theklan En realidad lo que estás reclamando (y a mi no me importaria) es tener acceso a las Ps de las Qs que un item tenga como property o como qualifier. Iria bien ?

Theklan (discussiócontribucions)

Eso es, y que pueda ser entendible por un switch. Es decir, si me da la és instància de (P31) como Q6979593 me valdría.

Amadalvarez (discussiócontribucions)

@Theklan Solo por polemizar. Conceptualmente és fàcil, però sintàcticamente seguro que se complica, porque P31 hay una por cada ocurrencia de cada P que tenga Messi y una por cada Qualificador de cada ocurrencia de cada P. Si miramos Barack Obama (q76), que es mi persona WD de referencia, como se le tendria que decir que quieres acceder a membre del partit polític (p102) de los sucesores de sus cargos para distinguir si ha sido relevado por un democrata o un republicano, por ejemplo ?.

Theklan (discussiócontribucions)

@Amadalvarez: Ese es el problema! No lo tengo si solo tuviera un equipo... pero no puedo conseguirlo de una lista y que cada uno lo trate diferente, como hago con los cargos políticos.

Vriullop (discussiócontribucions)

S'està parlant de dues coses diferents:

  1. Obtenir una propietat d'un altre ítem: la instància dels equips de Leo P54/P31 o el partit del predecessor d'Obama P39-P1365/P102. Imagino que per a una consulta seria viable, tipus property=P54|subproperty=P31, però per incloure-ho en una taula ja fa falta més imaginació.
  2. Obtenir en una taula una columna amb format raw per al seu tractament posterior com afegir-hi icones. Imagino que aniria bé alguna cosa com property=P54|rowformat={{icon|$raw0}} $0

En el segon cas cal recordar les incompatibilitats entre plantilles i mòduls. Ja ens ho vam trobar en el cas de les medalles olímpiques. Primer caldria assegurar que aquesta plantilla funcionarà dins d'un invoke. En cas contrari caldria fer-ho amb Lua i el plantejament a seguir seria un altre.

En un i altre cas serien canvis importants i m'agradaria saber si és per resoldre un cas puntual o bé són millores aprofitables en altres casos.

Personalment sóc advocat anti icones en infotaules de biografies, igual que en.wiki, però no he aconseguit convèncer del tot als companys de ca.wiki i entenc que és pràctica habitual en el camp d'esports. Per això no voldria dedicar esforços només a les icones.

Theklan (discussiócontribucions)

Creo que es un esfuerzo que vendría bien para muchas cosas. Con la automatización puedes separar muchísimas cosas, no solo equipos de futbol de selecciones nacionales. También podrías separar tipos de cargos, participación de actores en series y películas, mujeres y hombres de una lista... así a bote pronto.

Vriullop (discussiócontribucions)

Yo havía identificado dos cosas distintas pero me hablas de una tercera, o voy perdido. A ver, se trata de ordenar la tabla primero por su és instància de (P31) o la propiedad que sea de cada entidad, y luego por tablesort, o bien filtrar por un P31 determinado?

Theklan (discussiócontribucions)

Bueno, en realidad lo segundo es siempre mejor que lo primero. Si puedo hacer dos apartados diferentes para equipos y selecciones, pues todavía mejor.

Theklan (discussiócontribucions)
Vriullop (discussiócontribucions)

Vaig anotant en la meva llista de treballs pendents. Entre mil coses més, per a Wikidata tinc el filtre en taules en el número 2 i les icones en el número 7. No ho he pensat encara però d'entrada per les icones crec que hauré de reestructurar els paràmetres. En lloc de "formatting=table" alguna cosa com "formatting=icon, list=table". És una qüestió de format de sortida sigui per a taula, llista o una sola entitat.

Amadalvarez (discussiócontribucions)

A banda que no sigui gaire amic de les banderetes i medalles, interpreto que és una propietat dels valors d'algunes propietats (com la branca militar (P241) del John Glenn, però Theklan també la voldrà per les condecoracions que, com es veu a George Patton (Q186492) apareixen a premi rebut (p166) que serveix per coses que no tenen símbol (o no convé posar per no policromar en excés la taula). Si, finalment, es pot arribar a "les Ps de les Qs que un item tingui com property o com qualifier" entenc que serà una més de les variables que sabrà tractar en el rowformat. Vull dir, que no sé si cal un formatting propi. Ho dic perquè cada cop que apareix un formatting propi, deixa de poder-se fer servir per explicar el format de la property.

Per una altra banda, hem passat de no tenir capacitats d'edició a tenir unes de generalistes i ara podem fer el salt a saber tractar casuístiques d'una propietat determinada (i els seus qualificadors). A la WP-ES (no sé si per casualitat, disseny o error+correcció) tenen un codi propi per cada tipologia de sortida (premis, càrrecs, etc,..) que ho fa menys versàtil com a eina global, però segur que amb un codi més fàcil de "torturar" a mida de cada cas, amb la corresponent dependència de manteniment.

Bé només era una reflexió a sumar a les variables de context.

Theklan (discussiócontribucions)

Sí, pero poder dar formato según las P de las Q es bastante útil. Por ejemplo, que el cargo de Papa tenga un fondo amarillo en lugar del azul standard. Es sencillo si tengo la Q en raw en una tabla (a la que le puedo aplicar switch). Y si ya tengo la Q en raw en una tabla, puedo hacer ejercicios interesantes con sus P.

Vriullop (discussiócontribucions)

No puedes hacer un switch dentro de un invoke. Un rowformat={{#switch:$0...}}, o su equivalente con una plantilla, no funciona porque primero ejecuta el código wiki con valor literal $0 y luego ejectura el invoke. Si el switch es externo al invoke entonces puede servir para un solo resultado, es complicado para tratar una lista y es prácticament imposible tratar una tabla. Las soluciones para el formato complejo de una tabla deben ser via Lua.

Mientras lo escrivía se ha encendido una lucecita. Lua puede forzar el proceso de una plantilla. No lo he usado pero puedo investigar y probar. ¿Puede servir una sintaxis como rowformat=template:icon:$raw0? Entendiéndolo como {{icon|Q de la P}}

Theklan (discussiócontribucions)

Me cuesta visualizarlo así... porque entonces siempre tendría que ser la misma Q de la P, no? Es decir, como conseguiríamos saber que tiene que aplicar ese icon en cada momento?

Vriullop (discussiócontribucions)

Con $raw0 quiero decir lo mismo que $0 pero en raw, es decir la Q que estavas pidiendo. La plantilla que quieras aplicar a esa Q es template:tu_plantilla, la que sea, a incluir en rowformat cuando y como quieras, además de los habituales $0...$9. Por ejemplo, una tabla con iconos: "rowformat=template:icon:$raw0 $0" que lo sustituirá para cada propiedad por {{icon|Q...}} [[sitelink|label]] ejecutando la plantilla dentro de Lua y en la cual puedes poner el switch de iconos para cada Q. Es solo una idea preliminar a desarrollar por si interesa incluir cualquier plantilla dentro de rowformat y que necesariamente debe tratar Lua.

Con sintaxis más simple podemos ahorrarnos ":$raw0" si el parámetro a pasar a la plantilla va a ser siempre la Q, la P en raw.

Theklan (discussiócontribucions)

Mmm... bueno, me fío de lo que digas... supongo que funcionará.

Theklan (discussiócontribucions)

Otra buena utilidad. Tengo ya en uso la plantilla de películas automática. Cuando la pondo, sale una lista de actores. Si tuviera esta utilidad en marcha, podría poner una lista de fotograías con el nombre debajo. Y quedaría mucho más cuqui.

Vriullop (discussiócontribucions)

Lo tengo pendiente, no me he olvidado. Se han colado otras cosas y la siguiente quincena estaré a medias. Probablemente para principios de enero.

Theklan (discussiócontribucions)

No es por meter prisa, eh! Es por dar ideas!

Vriullop (discussiócontribucions)

Primer pas: amb Wikidata/proves es poden posar plantilles dins de rowformat. La forma és usant la família Plantilla:((, és a dir: {{((}}Títol{{!}}Paràmetre{{!}}nom{{=}}paràmetre{{))}} És per evitar que faci l'expansió abans d'invocar el mòdul. També es poden posar funcions parser, tipus {{((}}ucfirst:$1{{))}}. Una mostra a Special:Permalink/17911676.

Aneu provant, amb condicions rebuscades pot ser que no funcioni. Amadalvarez, estàs al cas?

Queda pendent obtenir la Q de la P per poder posar $Q com a paràmetre en una plantilla.

Vriullop (discussiócontribucions)

Afegit també a formatting quan s'usa amb un patró. Exemple, per província de Barcelona (Q81949) amb situat a la unitat administrativa (P131): {{#invoke:Wikidata/proves|claim|item=Q81949|property=P131|formatting={{((}}Bandera{{!}}$1{{))}} $1 }} En aquest cas també es pot usar $Q, si la plantilla té un switch pels valors Q: formatting={{((}}Bandera{{!}}$Q{{))}} $1 }} ho processa com "{{Bandera|Q5708}} Catalunya"

Queda pendent afegir $Q a rowformat, més complicat a priori.

Em sento satisfet per la funció d'expansió de plantilles, més que pel resultat pel repte que suposava. La darrera vegada que vaig sentir aquesta sensació va ser per una sola línia a Mòdul:ca-flexió. La meva àvia estaria orgullosa per simpatia.

Theklan (discussiócontribucions)

Lo he probado en Usuari:Vriullop/proves, con las nacionalidades de Einstein, y parece que puede funcionar. No me ordena con tablesort, pero sí que pone las banderitas de los países a los que ha pertenecido.

Vriullop (discussiócontribucions)

En listas solo funciona tablesort=0. Los valores 1-9 son para los cualificadores en tablas. Está anotado en la documentación.

Theklan (discussiócontribucions)

Sí, he probado también en tablesort = 0. Claro, lo ordena en orden alfabético. Voy a hacer unas pruebas con cualificadores.

Vriullop (discussiócontribucions)

He hecho una actualización en eu:Module:Wikidata/probak. Prueba que no haya roto nada y puedes pasarla al módulo protegido. Finalmente he descartado incluir un $Q. Puedes poner una plantilla y usar colformat, por ejemplo rowformat={{((}}Bandera{{!}}$0{{))}} | colformat0=raw Con esto tienes la propiedad en raw que la pasa a la plantilla.

Theklan (discussiócontribucions)

Ahora lo miro y miro la documentación. Se me ocurren tantas cosas que se pueden hacer!

Theklan (discussiócontribucions)

He comenzado a usarla y sí, da muy buenos resultados. Por ejemplo las banderitas en eu:Albert Einstein ya están puestas. Si existe bandera, la pone, si no existe, link y ya.

Tengo una pregutna sobre GetInstanceValue... qué es lo que hace exactamente?

Vriullop (discussiócontribucions)

Por ejemplo en Aisai obtiene de forma automática la lista de la estructura administrativa: estado, región y prefactura. El código puedes verlo en Plantilla:Infotaula geografia política buscando getInstanceValue. Tiene un submódulo de soporte que deberás crear en eu.wiki: Mòdul:Wikidata/labels. Este módulo tiene una tabla de correcciones de etiquetas y una función que elimina las preposiciones. Habría que adaptarlo a las necesidades en vasco. En catalán elimina la parte con preposiciones para simplificar las etiquetas en las infobox, per ejemplo "prefectura de Japó" se queda en "prefectura". De entrada puedes eliminar la parte del "else" que es la específica para catalán.

Theklan (discussiócontribucions)

Me gusta. He detectado un error. Si utilizo colformat0 = internallink... entonces pone los corchetes de apertura pero no los de cierre. Me ha parecido un poco raro.

Vriullop (discussiócontribucions)

Pues sí que es raro, ponme un ejemplo porque no lo veo ni se me ocurre el motivo.

Theklan (discussiócontribucions)

Pues ahora no lo he podido hacer... ayer me daba ese error continuamente. Si me vuelve a pasar te lo digo.

Por tora parte, he creado eu:Modulu:Wikidata/labels pero no parece que se cargue si invoco GetInstanceValues. Puedes verlo en eu:Wikipedia:Proba orria/1. Ah! Si el lugar teine más de un valor en administraicón (pasa normalmente en WD) entonces he visto que deja de funcionar.

Vriullop (discussiócontribucions)

Me dejé una linea: eu:Special:Diff/5698286. Utiliza el case=infoboxlabel que también puedes usar directamente en una consulta simple.

Por otra parte, hay un problema con las mayúsculas en Wikidata, se supone que las etiquetas genéricas estaran con minúscula inicial. Deberías modificar estat sobirà (Q3624078) a "estatu subiranoa", tal como está en la tabla de labels. Aunque luego el módulo pone mayúscula inicial tal como se supone que debería ser una etiqueta en una infobox. De hecho esta función implica traducir y revisar muchas etiquetas en Wikidata.

Dame un ejemplo con más de un valor que no funcione. En principio debería coger el de rango preferente o bien el primero.

Theklan (discussiócontribucions)
Vriullop (discussiócontribucions)

No es un problema de diversos valores sinó al contrario que faltan datos. Obtiene:

Luego intenta buscar su etiqueta con:

pero no la encuentra y se para sin haber obtenido nada. Falta definir la instancia en Wikidata:

luego podrá seguir:

Theklan (discussiócontribucions)

Vale... he estado fuera un día sin cobertura y ya se me ha ocurrido nuevas ideas. Le puedo decir que si encuentra en ese upto Comunitat autònoma del País Basc (Q3995) entonces haga algo y que si no lo encuentra entonces no lo haga? Es decir, puedo meter la respuesta dentro de un switch? -Theklan (disc.) 13:09, 5 gen 2017 (CET)

Vriullop (discussiócontribucions)
Theklan (discussiócontribucions)

Me puede valer sí! Ya veremos que otras cosas se nos ocurren!

Resposta a «Yo a lo mío»