Vés al contingut

Tema de Viquipèdia:La taverna/Ajuda

KajenCAT (discussiócontribucions)

Em preguntava si hi ha alguna manera de xuclar les dades d'aquest històric, fet per la Generalitat, ja que tenim per cada alcalde des de la Transició:

Com que no en tinc ni fava, us volia preguntar si és factible xuclar-les d'alguna manera, tot tenint en compte que alguns ja els devem tenir creats. Abans del descobriment d'aquest llistat, ja m'interessava tenir tots els alcaldes des del 1979 al Camp de Tarragona (de fet, ja ho estava fent). Per això, si no es pogués automatitzar, però sí sota revisió, m'agradaria poder usar-lo de mica en mica (i de pas cercar si hi ha més dates com la data de naixement).

Menciono a alguns usuaris que crec que d'alguna manera o altre podrien saber-ho (@Pere prlpz, Amadalvarez, Davidpar, Vriullop:)

Pere prlpz (discussiócontribucions)

Probablement es pot fer, però tot i els automatismes caldrà molta revisió manual, sobretot per evitar duplicats. Si hi ha algú interessat li podem donar un cop de mà. De fet, el temps d'aprendre les eines (que fins i tot podria ser un senzill full de càlcul) serà molt poca cosa comparat amb el temps d'estar manipulant i revisant dades.

Assignar gènere a partir del nom s'ha fet però cal anar amb compte amb casos inesperats (com els bots de Wikidata confonent en massa els Joans catalans amb Joans angleses).

Amadalvarez (discussiócontribucions)

Subscric el que comenta en Pere.

Només vull recordar que l'item del càrrec "alcalde de abcabc.." NO HA DE CONTENIR la llista d'alcaldes, sinó que són els items de persones que tenen la propietat "càrrec = Alcalde de abcabc....", amb dates, legislatura i partit.

El procés de càrrega no és difícil, el que costa més és la preparació. Per exemple, cal esbrinar el Qid de cada persona, cada partit, cada legislatura, etc.

@KajenCAT, si t'animes, t'ajudem

KajenCAT (discussiócontribucions)

Sí, soc conscient que caldrà revisió manual, per això, voldria fer-lo a petita escala. La qüestió seria, si la meva meta fos, per exemple, uns 50 pobles, surt a compte fer tot això? O millor anar un per un?

M'imagino que el procés deu ser a través de Quickstatement, oi? No existeix cap altre mecanisme (factible)?

La meva principal preocupació és evitar els duplicats. Existeix alguna manera d'identificar-los automàticament? Per exemple, amb els noms que ja tenim, intentar identificar items idèntics o similars com fa l'eina Duplicity de Wikidata (exemple). Sé que no deu existir cap manera que eviti al 100%, però almenys que redueixi al màxim.

Pere prlpz (discussiócontribucions)

Tal com jo ho faig habitualment et calen tres eines:

  • Queries per baixar el que hi ha a Wikidata.
  • Una eina per tractar les dades que t'has baixat i les que vols pujar.
  • Quickstatements per pujar les dades.

La part que porta feina és la del mig, i de fet pot incorporar el baixar la query i ha d'incorporar el preparar les dades pel quickstatemenst. Per aquesta part jo faig servir R però seria possible fer servir Python o fins i tot un full de càlcul. Suposo que gairebé qualsevol llenguatge de programació serviria.

Diria que aquí l'important és detectar duplicats (dades que ja són a Wikidata) i errors (sobretot discrepàncies entre Wikidata i de les dades de la Generalitat) abans de pujar. Duplicats en potència n'hi pot haver de dos tipus:

  • Alcaldes que ja estiguin com a alcaldes. Aquests són els més fàcils de trobar fent una query amb els alcaldes del municipi. A més, com que per un mateix període no hi pot haver més d'un alcalde (excepte excepcions estranyes) qualsevol programa et pot ajudar a veure quines legislatures falten, quines coincideixen i quines hi ha una diferència entre les dues fonts.
  • Alcaldes que estiguin a Wikidata però no com a alcaldes. Per exemple, pot ser que un alcalde sigui a Wikidata perquè ha estat diputat, escriptor o jugador de bàsquet, però no surti com a alcalde. Aquí només tindràs el nom i costarà de buscar. Suposo que jo partiria de baixar de Wikidata tots els espanyols que no surtin com a morts abans de 1979. Tindràs el problema de que la forma d'escriure un nom no sempre és única (per començar per si està traduït en algun lloc).

Començar per comarques sembla molt raonable. De fet, pots començar per un municipi i segons el que et trobis anar automatitzant el procés i agafar lots més grans. Pot ser que trobis que alguns tipus de duplicats no es donen i puguis fer més via. També és cert que els duplicats del segon tipus, que són els més difícils d'evitar, són relativament fàcils de resoldre si te'ls trobes a posteriori (només cal fusionar els dos elements).

Amadalvarez (discussiócontribucions)

Faig exactament el procés que explica el Pere i l'eina intermedia és un EXCEL.

  • obtinc amb un SPARQL els continguts de les propietats objecte de la càrrega i ho poso en una pestanya del full de càlcul (Preexistent).
  • Recupero el fitxer (el xuclat) i ho poso en una altra pestanya (a Carregar).
  • A aquest contingut li faig dos tractaments consecutius:
  • normalitzar el seu format perquè s'hi assembli al que té el recuperat de WD (estructura del nom, dates, fer parsering si cal de certs contingut,...)
  • a continuació faig un procés de match (força artesanal) entre el contingut preexistent i el xuclat. Tot allò que coincideix, directament ho ignoro o elimino del contingut xuclat, perquè ja ho tenim. Com que és una comparació "alfanumèrica" poden haver falsos negatius, però els positius que podem eliminar, rebaixen l'esforç per la següent etapa. Important la nota del Pere: que coincideixi la persona no vol dir res, estem carregant càrrecs i és aquí on cal controlar duplicats.
  • El que ha quedat és el que cal carregar. Llavors:
  • Cal aconseguir la Qid de totes les persones, càrrecs i partits que han quedat per carregar. Aquesta tasca la faig amb un gadget que li dones el nom i et retorna el Qid, que tinc muntat a la pàgina Usuari:Amadalvarez/30000dones i que pots fer servir lliurement, perquè el contingut que hi ha ara és de treball.
  • En una altra pestanya (Taules) creo unes taules d'equivalència amb dues columnes: Nom i Qid; per totes les persones, partits i càrrecs. Aquestes taules les empleno amb el resultat obtingut en el pas anterior.
  • Per poder seguir, abans hem d'aconseguir que tots els elements de les taules d'equivalències tinguin Qid, o bé obtingut amb el gadget anterior, o bé cercant-lo manualment si creiem que existeix però amb nom lleugerament diferent o bé creant els corresponents items quan descartem totalment que ja existeixi.
  • Tornem a la pestanya "a Carregar":
  • A la dreta de les columnes amb el contingut que hem de carregar, hem de crear l'estructura de càrrega del QS (una cel·la per cada part de l'statement), amb el valor, els qualificadors, i les referències (que sempre serà la mateixa: la URL de l'Opendata).
  • Com que aquí ens calen Qids i, a les columnes originals (a l'esquerra) tenim textos, hi posem una funció d'excel que cerqui el text dins les taules i retorni el Qid (BuscarV)
  • Aquestes fórmules les repliquem a totes les files i, aproximadament, ja ho tenim.
  • copiem línies sobre el formulari de QS, provem i si hi ha algun error de sintaxi (típics: manquen cometes, format de data,..) tornem a corregir les fórmules de la primera línia i tornem a replicar cap avall.

Si m'he deixat alguna cosa, pregunta.

Pere prlpz (discussiócontribucions)

I hi afegeixo que el mateix problema de duplicats amb els alcaldes el tindràs amb els partits, sobretot els partits locals. Els municipis seran la part més fàcil de casar entre Wikidata i les teves dades.

KajenCAT (discussiócontribucions)

Moltes gràcies per les vostres respostes detallades.

  1. El query, a banda de filtrar-lo per la data de defunció que comentava en Pere, entenc que la idea seria filtrar-lo per tots aquells que tenen ciutadania espanyola o han nascut en territori espanyol (no me'n recordo, però, com es traduïa aquest darrer filtre al query). A part d'això, no tinc més dubtes d'aquesta primera fase.
  2. El que tinc més dubtes és aquesta fase intermèdia. Com es puc detectar duplicats en un excel? (o R si és bàsic, que en sé poquet)
  3. M'imagino que si, per exemple, ja teníem que en Joanet va ser alcalde del poble A de 2015 a 2019, i després jo carrego que ho va ser d'1/2/2015 a 3/4/2019, tindríem dues declaracions duplicades en l'ítem d'en Joanet, oi?
  4. Aconseguir els Qid ho entenc perfectament i així com els tipus de duplicats que expliqueu. Gràcies pel gadget, Amador, una delícia! (ho faré en una pàgina meva que no se'm carregava pas la teva)
  5. Tota la resta del procés, cap problema (de moment)

Quan ho tingui tot preparat, començaré aquests dies amb alguns pobles aleatoris de l'Alt Camp, a veure com va.

Pere prlpz (discussiócontribucions)

Per trobar els duplicats jo vull dir dues coses:

  • Abans de pujar que en Joanet va ser alcalde del poble A de 1/2/2015 a 3/4/2019, comprovar que ja no ho digui. De fet, la comprovació hauria de ser que entre 1/2/2015 a 3/4/2019 no hi havia cap alcalde a A segons Wikidata. Jo crec que comprovar això amb un full de càlcul a partir de posar-li la query i les dades de la Generalitat pot ser complicat però potser es pot fer amb una combinació de consulv i algunes coses més. Si només vols entrar 50 municipis acabaràs abans fent la comprovació a mà. En la mateixa comprovació (a mà o a màquina) hauries de mirar les diferències de les dates, per trobar errors d'una font o l'altra i per millorar la precisió si es pot.
  • Si en Joanet no està com a alcalde, comprovar si en Joanet és a Wikidata. Si no vols haver de buscar cada alcalde a mà, l'Excel t'hi pot ajudar amb les variacions dels noms (per exemple, posant i traient la "i" entre cognoms si surt de manera no consistent en alguna de les dues fonts, mirant si els Joanets hi surten com a Juanitos, o si hi ha gent amb un sol cognom mirant si poden ser algú que en l'altra font en tingui dos). Aquí sí que un cop fetes les variacions del nom una funció consulv o similar hauria de fer bé la feina.

Sobre les eines, començar amb R no és fàcil (exemple) i jo no te'l recomanaria si no és que vols fer-lo servir per més coses o vols pujar moltes dades a Wikidata. A més, tot el que es pot fer amb R es pot fer millor o pitjor amb Python i a la Viquipèdia el Python serveix per programar bots. Aleshores, si vols una cosa més potent que l'Excel pot ser que amortitzis millor l'esforç d'aprendre Python.

I naturalment les eines òptimes depenen del la magnitud de la feina. Si vols pujar els alcaldes d'una sola comarca, potser el més curt serà comprovar-los gairebé a mà i fer servir l'Excel només per crear les ordres pel Quickstatements, però si vols pujar els 9000 alcaldes de les dades que has enllaçat segur que et surt a compte muntant-te un programa amb el que sigui. En qualsevol cas, pots començar i anar veient com va la velocitat i la motivació de la feina, i a partir d'això veure quines eines valen la pena.

Amadalvarez (discussiócontribucions)

@KajenCAT Per a què no diguis que no t'ho havia dit, la eina que sap fer totes les passes: formatar font, reconciliar els textos amb la seva Qid, detectat si ja està a WD i s'ha d'ignorar, carregar els continguts, ... és l'Openrefine. A més si en el match detectes que la persona (o partit) no hi és a WD i l'has de crear, tot i que no tinguis pràcticament cap dada, et permet preparar-te un lot amb tots els casos i crear-los amb unes quantes declaracions que són fixes i deduïbles (instància, gènere, professió, com a mínim polític, etc..).


Problema: La corba d'aprenentatge és important; no perquè sigui "tècnicament" difícil, sinó perquè pot fer tantes coses que has de saber "quin botó pitxar i en quin ordre" per a que el procés sigui fàcil i eficient. Jo ho vaig provar un cop i vaig comprovar que per la via de prova-error no me'n sortia. Quan tingui temps per posar-me a estudiar-ho, ho tornaré a intentar.

KajenCAT (discussiócontribucions)

Unes quantes "cuquicuriositats". He descarregat el llistat dels nascuts a Espanya (no he ficat la defunció al final perquè no sabia com dir-lo al query), que són unes 108.325 persones, si ho he fet bé. A l'històric tenim les 9.987 alcaldies catalanes de les 10 legislatures (de les 11 que hi han hagut des del 1979). No obstant això, és habitual que repeteixin, per tant, hem tingut 5.466 alcaldes. Fent un match molt rudimentari, em surt que almenys 126 alcaldes tenen ítem a Wikidata. No m'estranyaria que el nombre fos molt més elevat perquè els noms dels alcaldes a l'històric de la Generalitat tenen molts errors; dobles espais, decisions arbitràries sobre la i entre els dos cognoms (en alcaldies repetides, algunes la porten, en altres no), infinites variacions de Josep Maria o altres dobles noms, castellanitzacions de noms sense sentit quan el nom real és en català, etc). O sigui, em temo que les dates de les possessions també tindran la mateixa "sort".

Abans de fer res, vull crear els ítems dels càrrecs d'alcalde (i de regidor, ja de pas) i la institució local (Ajuntament) dels municipis que faltin. Els tinc preparats per crear, però abans necessito saber quins ja tenim. Si sabeu com buscar els existents per query, us agrairia.

De moment, estic seguiré per la via d'Excel perquè realment no tinc gaire temps per estudiar-m'ho, però realment el R o Openrefine són bastant interessants.

Pere prlpz (discussiócontribucions)

Per aparellar noms jo et recomanaria primer normalitzar-los d'alguna manera. Com a mínim, pots posar-los tots en minúscules (tot i que amb Excel potser no cal) i eliminar les "i" entre els cognoms. Segons com siguin les dades, eliminar els accents també pot ser útil. Traduir els noms de pila a un mateix idioma pot ser útil però complicat.

En qualsevol cas, el que jo faig amb els topònims és que quan l'script ha acabat d'aparellar tot el que pot m'ensenya el que queda. En el teu cas és que t'ensenyi la llista d'alcaldes que hi ha a Wikidata i els que hi afegiria.

Pere prlpz (discussiócontribucions)

Els càrrecs d'alcalde estan tots creats i enllaçats excepte vuit:

# càrrecs d'alcalde de municipis catalans
SELECT ?carrec ?carrecLabel ?municipi ?municipiLabel WHERE {
  ?municipi wdt:P31 wd:Q33146843.
  OPTIONAL{?municipi wdt:P1313 ?carrec.}
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],ca,en,es,fr".}
}

Prova-ho !

Amadalvarez (discussiócontribucions)
Amadalvarez (discussiócontribucions)

Hem solapat les respostes en Pere i jo. Ja veus quan t'estimem....

Pere prlpz (discussiócontribucions)

Ja va bé perquè els hem buscat diferent i em sembla que no hem trobat els mateixos. Si més no, la suma no quadra. Potser hi ha regidors que no són subclasse de regidors o alcaldes que no surten a l'item del municipi.

Pere prlpz (discussiócontribucions)

O tu hi has inclòs els consells comarcals també (que és una manera subtil de donar-li més feina a en KajenCAT).

Amadalvarez (discussiócontribucions)

he anat per subclasse i han sortit, però si no formen part de la càrrega, que els ignori, simplement.

Pere prlpz (discussiócontribucions)

Regidors me'n surten uns 300:

# càrrecs de regidors de municipis catalans
SELECT ?carrec ?carrecLabel ?municipi ?municipiLabel WHERE {
  ?carrec wdt:P279 wd:Q708492.
  ?municipi wdt:P31 wd:Q33146843.
  ?carrec wdt:P1001 ?municipi.
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],ca,en,es,fr".}
}

Prova-ho !

Pere prlpz (discussiócontribucions)

Faltaven els ajuntaments.

SELECT distinct ?municipi ?municipiLabel ?item ?itemLabel WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
  ?item wdt:P31 wd:Q22996476;
          wdt:P1001 ?municipi.
  ?municipi wdt:P4335 ?cat.
}

Prova-ho !

En surten molt pocs, però compte que n'hi pot haver que no estiguin enllaçats. He trobat Ajuntament de Ripoll (Q100332157) per casualitat. També despista que hi ha cases de la vila amb l'etiqueta d'ajuntament.

KajenCAT (discussiócontribucions)

Moltes gràcies :3 Us actualitzo l'estat.

  • Regidors Fet!
  • Alcaldes Fet! (crec, només n'he trobat dos que faltaven)
  • Ajuntaments - en suspens (no és necessari de moment)

Ara estic intentant muntar un sistema per detectar el màxim d'alcaldes ja existents amb la "i" entre els cognoms i les possibles castellanitzacions els dos noms més utilitzats, tot i que no sé quin percentatge del total podré detectar. A veure demà.

Amadalvarez (discussiócontribucions)

Bona feina !!

No et caldran les legislatures ?. Són fàcils, perquè a ESP van tots els municipis alhora. Potser ja hi són. Bé, lo dit. Si et cal qualsevol cosa,....

KajenCAT (discussiócontribucions)

Ui, això se m'havia oblidat preguntar-vos. No ho sé ben bé com es faria això. S'ha de crear un ítem en específic o ja existeix, o com? Jo mai l'incloc, però com que ja està a l'històric, doncs havia pensat why not

KajenCAT (discussiócontribucions)

Ara he vist que, en realitat, els alcaldes restants són una vintena, ja que el query ha donat uns quants falsos positius perquè enllacen a l'ítem genèric de l'alcalde.

He perfeccionat una mica més el match, i he detectat 374 coincidències. Però és molt possible que hi hagi una bona quantitat d'errors de tota mena impossibles d'assumir. Ni tan sols si volgués fer a l'àmbit nacional, sortiria a compte, hi ha massa feina.

Per això, aniré un per un després de bolcar les declaracions predefinides. Començaré pels municipis més petits de l'Alt Camp fins a arribar tot el camp de Tarragona (espero...) i ho aniré comprovant un per un. Igualment ho hauria de fer igual per afegir més informació com data de naixement, etc que pugui trobar per internet.

Hauria de fer abans els partits, però em sembla que només inclouré els més habituals (els partits parlamentaris i poca cosa més). Per cert, creieu que seria més adient incloure el partit com a qualificador del càrrec? M'imagino que alguns deuen haver canviat de partit.

Una última pregunta, es poden crear declaracions de Forma femenina de l'etiqueta (P2521) a Quickstatement? En cas que sí, com?

I, per acabar, les curiositats del dia, els noms més «populars» entre els alcaldes són Josep (767), Joan (477), Ramon (201), Jaume (194) i Francesc (175). Els noms femenins més «populars» són Maria (101), Montserrat (41) i Rosa (36).

Moltes gràcies als dos!

Amadalvarez (discussiócontribucions)

Si decideixes posar el partit, hauria de ser com qualificador, ja que el partit de l'item de la persona pot ser multivalor quan ha estat a més d'un o, pot tenir un partit assignat sense limit temporal (el més habitual), però haver-se presentat com independent en unes eleccions. No obstant, si no ho poses, no passa res.

Lo de la forma femenina és com ha respost el Pere més avall, però ves amb compte que això va a l'item del càrrec d'alcalde, no al càrrec de la persona !!

Ànims, que és una feina molt important, que cap altra comunitat wiki farà per nosaltres  !!

Pere prlpz (discussiócontribucions)
Resposta a «Xuclar dades a Wikidata»