Ajuda:Llistes automàtiques
From Wikipedia, the free encyclopedia
Aquest bloc d'ajuda s'està creant i pot requerir d'ajustos fruit de les vostres aportacions. Si veieu algun error o teniu algun suggeriment per millorar la comprensió del tema, us agrairé que ho deixeu a la pàgina de discussió. De moment, us demano una mica de paciència. Gràcies |
Sintaxi simplificada | Sintaxi original SPARQL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{Wikidata list | sparql = SELECT * WHERE { ?item wdt:P106 wd:Q1028181; wdt:P135 wd:Q34636; wdt:P21 wd:Q6581072. } | columns = P18:Imatge,label:Nom, P19:Lloc naixement,P569:Data naixement, P106:Ocupació, item:Qid | sort=label | links = red | thumb = 60 | freq = 180 |
{{Wikidata list | sparql = SELECT * WHERE { ?item wdt:P106 wd:Q1028181; wdt:P135 wd:Q34636; wdt:P21 wd:Q6581072. OPTIONAL { ?item wdt:P18 ?imatge. } OPTIONAL { ?item wdt:P19 ?lloc_de_naixement. } OPTIONAL { ?item wdt:P569 ?data_de_naixement. } OPTIONAL { ?item wdt:P106 ?ocupacio. } } | columns = ?imatge:Imatge,label:Nom, ?lloc_de_naixement:Lloc naixement, ?data_de_naixement:Data naixement, ?ocupacio:Ocupació, item:Qid | sort=label | links = red | thumb = 60 | freq = 180 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Informació actualitzada per un bot. Els canvis manuals es perdran quan s'actualitzi! Fi de la llista autogenerada. |
Informació actualitzada per un bot. Els canvis manuals es perdran quan s'actualitzi!
Fi de la llista autogenerada. |
Les llistes automàtiques, col·loquialment conegudes com listeriabot o wikidata list, són un sistema que permet crear llistes dins les pàgines Viquipèdia a partir de les dades de Wikidata (WD) mitjançant un bot que executa consultes SPARQL en diferit. El resultat queda guardat en forma de taula wiki dins de la pàgina des d'on s'ha invocat i s'actualitza de forma periòdica.
Les pàgines amb llistes automàtiques són força còmodes, ja que no requereixen manteniment i el seu contingut s'actualitza automàticament quan hi ha canvis al contingut de Wikidata. Per tant, aprofiten les millores de contingut que qualsevol editor d'arreu hagi fet, un aspecte molt important en informacions de creixement evolutiu com ara càrrecs, premis, censos de població, etc.
Podeu veure unes mostres a la pestanya "Exemples" i trobareu tots els casos que tenim a la categoria:Llistes automàtiques.
Ara bé, per crear-les cal tenir alguns coneixements tècnics que s'expliquen al llarg d'aquesta pàgina d'ajuda.
Tots sabem que es pot tocar la guitarra sense haver estudiat solfeig però la cursa d'obstacles fins que aconsegueixes que soni com volies és important. Per tant, no t'enganyarem: per dominar aquesta eina cal entendre com funciona Wikidata, tenir una idea bàsica d'SPARQL, conèixer el codi de les propietats WD, saber com és el codi wiki per fer una taula i també estaria bé tenir nocions de programació en codi wiki.
Ara bé, qui es resisteix a l'assaig-error sobre els models que et mostrarem en aquesta ajuda? És un camí a provar. Atreveix-te!
Com funciona ?
- SPARQL
Pels que no hi estiguin familiaritzats, SPARQL és un llenguatge per a la consulta de bases de dades (Wikidata, entre d'altres) que permet recuperar continguts que acompleixin unes condicions que nosaltres determinem. El resultat és un conjunt de dades agrupades per cada instància (ítem) de la base de dades. Per exemple, si demanem "fars ubicats a Illes Balears" ens retornarà l'identificador dels ítems (Qid) que corresponguin a P31=far i P131=Illes Balears. Però si a més li indiquem que en volem saber la data de creació, aquesta acompanyarà a cadascun dels Qid dels far que la tinguin informada.
El llenguatge SPARQL no és gaire amigable per a persones amb pocs coneixements tècnics, però hi ha un tutorial bàsic en català molt útil per familiaritzar-s'hi. En la mesura que és l'element necessari per construir les llistes automàtiques, en aquestes pàgines d'ajuda es recopilen exemples que podreu copiar i reajustar a les vostres necessitats. També veurem, a la pestanya "Sintaxi", que hi ha una forma molt senzilla per a fer llistes bàsiques i, a mida que tinguem més experiència, podrem abordar casos més complexos.
- Com es posa contingut de Wikidata (WD) dins la Viquipèdia (VP) ?
- Des de la VP, i mitjançant el mòdul:Wikidades, es poden recuperar les dades WD d'un ítem determinat i, com a molt, d'alguna altra entitat directament mencionada a l'esmentat ítem. Aquesta és la solució que veiem a les infotaules, on es mostra informació pròpia de l'ítem sobre el que versa l'article en qüestió.
- Ara bé, la potència de Wikidata s'aconsegueix amb els accessos inversos (backlinks) que es fan mitjançant consultes SPARQL (queries). En aquest cas, les consultes permeten recuperar una llista de tots els ítems que "apunten cap a un ítem", sense que aquest enllaç sigui, necessàriament, recíproc. Exemples: totes les persones que han estudiat una universitat (o diverses); totes les obres d'un artista; tots els presidents que ha tingut un país, etc. A Wikidata, l'ítem d'una universitat no inclou una relació de tots els seus estudiants, però si preguntem "quines persones han estudiat a...", obtindrem la resposta. Aquest tipus de consultes són l'objecte de les llistes automàtiques.
- Si hem vist que el SPARQL precisament fa aquesta mena de consultes, per a què serveixen les llistes automàtiques?
- VP està orientada a l'eficiència en la consulta. Per tant, les pàgines que veuen els lectors estan totalment "escrites" tal com les veuen, no com veiem el codi els editors. Totes les plantilles, taules, infotaules, imatges, etc. s'executen i/o recuperen per generar el text al moment de desar-les. Totes les dades variables d'una infotaula s'agafen de WD quan es desa l'article, no cada cop que el consultem. Quan modifiquem WD i no modifiquem/desem l'article, hi ha uns mecanismes automàtics que s'encarreguen de "refrescar" l'article perquè agafi el nou valor de la dada canviada.
- Per aquest motiu, l'ús de consultes SPARQL no es pot fer des de la VP perquè va en contra de la seva arquitectura, ja que cal executar la consulta SPARQL si se'n volen obtenir els resultats.
- Per esquivar aquesta limitació, les llistes automàtiques, mitjançant l'eina {{wikidata list}}, ens permeten escriure una consulta SPARQL dins del cos de l'article VP que no s'executarà ni quan desem l'article, ni quan el consultem. La Wikidata list per se no produeix cap canvi en el contingut de l'article. La seva funció és emmagatzemar.
- Aquesta eina es complementa amb el Listeriabot, un robot que revisa periòdicament aquells articles VP tot cercant una {{wikidata list}} dins del seu text. Llavors, en pren el codi de la consulta SPARQL que conté, l'executa en un espai propi "no VP" i edita el resultat obtingut en forma de taula wiki, l'emmagatzema dins l'article i el desa. Si consultem l'article després que hi hagi passat el bot, veurem el resultat d'SPARQL dins del cos de l'article. Des del punt de vista de la VP, aquesta no ha executat res, sinó que ha estat un editor bot qui ha fet una consulta SPARQL i ha deixat un text creat per ell mateix dins de l'article, exactament igual que fan molts altres bots que corregeixen continguts. Aquest bot es pot invocar a mà quan volem forçar que el contingut es refresqui.
Elements que formen part d'una llista automàtica
Una llista automàtica es pot situar en qualsevol punt d'una pàgina VP, si bé cal tenir present que ocupa el 100% d'amplada i sovint és més fàcil treballar situant-la en una secció pròpia. Només pot haver una llista automàtica per pàgina i la seva estructura segueix l'esquema següent:
- Article on ubiquem la llista automàtica
- plantilla: Wikidata list amb:
- codi de la consulta SPARQL que cal executar, com a paràmetre
sparql=
- altres paràmetres de configuració de la llista
- codi de la consulta SPARQL que cal executar, com a paràmetre
- Taula wiki amb el contingut de la llista a mostrar, que ha estat generada pel listeriabot
- plantilla: Wikidata list end "vagó de cua" que serveix per indicar-li al bot on finalitza l'espai per ubicar el contingut generat
- plantilla: Wikidata list amb:
Plantilla:Wikidata list
Aquesta plantilla està descrita en detall a la seva documentació. Allà trobareu tota la informació sobre els seus paràmetres.
Tanmateix, el dos paràmetres directament implicats amb el contingut de la llista a obtenir són:
- sparql
- On s'escriu el codi de l'SPARQL a executar.
- columns
- On s'indica quines propietats s'han de mostrar a la llista, en quina posició i quina capçalera portarà la columna. Els valors de les propietats recuperades poden anomenar-se amb el nom d'una variable SPARQL (?nomvariable), o amb un pseudo-nom que és el codi de propietat (Pnnn).
A les properes seccions veurem com es fa.
Continua .. / ..
- ⇒ Pestanya "Sintaxi {{Wikidata list}}" per veure dues formes diferents de fer una llista bàsica.
- ⇒ Pestanya "Per començar" per veure les primeres passes per fer una nova llista.
Si recordem els "Elements que formen part d'una llista automàtica", que hem vist al capítol de "Presentació", anem a preparar-los:
Preparació
- Construir un codi SPARQL.
- La funció principal d'aquest codi SPARQL és seleccionar el subconjunt de dades que es visualitzaran en forma de taula. Per tant, hem de tenir clar quines són les característiques/condicions del "filtre SPARQL" que ens cal (t'anirà bé saber el codi de les propietats que faràs servir).
- Reaprofitant algun dels casos d'exemple, probablement n'hi haurà prou en saber el Qid de l'objecte a llistar (el premi del que volem saber els premiats, l'autor del que volem veure'n les obres, etc.), i bescanviar-lo dins el "codi a copiar" al lloc on s'indica.
- Si estem fent una llista nova a mida, recomanem anar directament a l'eina SPARQL i fer servir l'assistent de consultes (desplegueu-lo prement el botó "i" del marge esquerre) per escriure les condicions de selecció i provar que el resultat (de moment, les files) que surten són les que volem.
- A més de filtrar, també ens pot servir per fer alguna tasca de preparació de dades. (veure "Provar i ajustar")
- Crear el primer esborrany de la nostra llista en una pàgina d'usuari.
- Cada prova requereix guardar els canvis i cridar el bot, esperar que s'executi i mirar el resultat.
- És a dir, l'assaig-error requereix temps i tindrem la pàgina segrestada fins que acabem. Per tant, fins que no tinguem una versió definitiva, cal treballar en una pàgina de prova personal.
- Comencem sempre per posar un codi mínim:
Esquema de mínims | Exemple | Resultat |
---|---|---|
{{Wikidata list | sparql = SELECT * WHERE { ?item Pnnn Qnnnnnn. } | columns = label, Pnn, Pmm, Pzz, item | sort= | links = red | thumb = 60 | freq =
|
Seleccionarem: Ocupació (P106) = Pintor (Q1028181) +
Moviment (P135) = Modernisme (Q34636) + Sexe o gènere (P21) = Femení (Q6581072) Llistarem (columns): Imatge (P18), nom (label), Lloc de naixement (P19), Data de naixement (P569), Ocupació (P106) {{Wikidata list | sparql = SELECT * WHERE { ?item wdt:P106 wd:Q1028181; wdt:P135 wd:Q34636; wdt:P21 wd:Q6581072. } | columns = P18,label,P19,P569,P106, item | sort=label | links = red | thumb = 60 | freq = 180 |
Ens centrarem en els dos paràmetres fonamentals:
- Al paràmetre
sparql
cal posar-li el codi SPARQL que hem provat al punt anterior. columns
ha de tenir, de moment, el codi de les propietats que volem mostrar. Observeu que, a més de codis de propietat, hi ha dos noms especials: item, per obtenir l'identificador de l'ítem (Qid) i label, per mostrar el nom (l'etiqueta) de l'ítem WD.- La resta de paràmetres ja els ajustarem posteriorment.
- Al paràmetre
Provar i ajustar
- Provar
- Recordem que, després de fer els canvis, cal desar. Aquests canvis NO ES VEURAN, però no us amoïneu! Wikidata list NO fa res quan desem, tan sols guarda els paràmetres que li hem posat perquè el Listeriabot se'ls trobi i els faci servir.
- Per generar els resultats cal cridar el Listeriabot prement la icona que hi ha al costat dret de la llista.
- Revisem el resultat i fem els ajustos que calgui amb l'objectiu de que la cerca retorni allò que realment volem, sense patir per a que la informació aparegui tal ens agradaria.
- Quan la cerca "funciona", és a dir, quan surten les files corresponents al subconjunt que volíem filtrar i les columnes amb la informació que volem veure de cada element del resultat, podem seguir endavant.
- Ajustar i editar continguts
- Els canvis "lleugers" que poden fer a continuació són:
- Canviar el text estàndard de les capçaleres: afegint
:<el nostre text>
, darrera de les Pnnn decolumns
. Només cal fer-ho en aquells encapçalaments dels que volem canviar els textos generats automàticament.- On teníem: P18,label,P19,P569,P106, item
- Hi podem posar: P18:Imatge,label:Nom,P19:Lloc naixement,P569:Data naixement,P106:Ocupació, item:Qid
- Ordenar la llista (paràmetre
sort
). - Establir la mida de la imatge, si n'hem fet servir alguna (paràmetre
thumb
indicant els px).
- Canviar el text estàndard de les capçaleres: afegint
- Si ens cal fer alguna edició més complexa que requereixi un codi de tractament, ho podrem fer:
- o bé al codi SPARQL, ampliant el "codi de mínims" que hem construït al primer punt.
- o bé mitjançant el paràmetre
row_template
.
- En el primer cas, cal tenir importants coneixements SPARQL i, si es tracta de "formatar text", no acostuma a ser la millor opció.
- Si optem per la
row_template
, cal saber que es genera amb codi wiki com una plantilla i afecta directament a la construcció específica de cada línia. En aquest cas, cal estar familiaritzat amb la construcció de taules wiki.
- Els canvis "lleugers" que poden fer a continuació són:
Continua .. / ..
- ⇒ Pestanya "Tractament dades" per veure com editar continguts mitjançant el codi SPARQL abans de mostrar-los.
- ⇒ Pestanya "header-row template" per veure per què serveixen i com construir aquests elements.
Notes de funcionament
- Wikidata list requereix que el subjecte del
WHERE
sigui la variable?item
. Habitualment ja és així, però quan es fa servir l'assistent de consultes a vegades li posa un nom diferent. Si això passa, caldrà canviar el nom que hagi posat l'eina i posar ?item a tots els lloc que hi aparegui i tornar a provar que tot va bé. - Wikidata list retorna sempre el label de les propietats que li demanem, no les seves Qid, a diferència d'una consulta amb SPARQL, on el valor que s'obté d'una propietat és el seu identificador Qid.
La plantilla {{Wikidata list}} fa servir el paràmetre sparql= per contenir el codi de la consulta SPARQL que permet seleccionar el contingut de la llista. En principi, qualsevol consulta és vàlida per fer-se servir amb aquesta plantilla, si bé determinats paràmetres (LIMIT, SERVICE wikibase:label,..) no es tenen en compte.
Les columnes i l'ordre en que es mostraran es determinen mitjançant el paràmetre columns=, en lloc de fer-ho segons figura a la SELECT. Per tant, una sintaxi SELECT * WHERE és suficient i més versàtil.
Per facilitar la construcció de llistes senzilles la Wikidata list disposa d'una sintaxi simplificada, amb facilitat per afegir o treure columnes sense que calgui modificar les variables OPTIONAL del SPARQL (que no formen part de la condició de selecció). Amb aquesta sintaxi, però, no es pot fer edició dels continguts.
Si veiem la següent comparativa podem observar que la simplificada:
- Té un codi SPARQL més simple, sense definir variables (?imatge, ?lloc_de_naixement, etc.)
- Al paràmetre columns=, la sintaxi del qual és <nom_variable>:<text_capçalera>, veiem com en lloc de fer servir variables definides dins el codi SPARQL (?lloc_de_naixement), simplement cal fer servir el codi de la propietat (P19).
L'exemple mostra: Ocupació (P106) = Pintor (Q1028181) i Sexe o gènere (P21) = Femení (Q6581072) i Moviment (P135) = Modernisme (Q34636)
Resultat
Els resultats obtinguts són iguals amb les dues sintaxis, per tant, podem triar com fer-ho.
És una eina còmoda i fàcil per fer un llistat ràpid, que ens permeti veure el contingut de WD i, per exemple, ajudar-nos a millorar les dades WD, detectar mancances d'elements d'un subconjunt (obres d'un autor, patrimoni d'una zona,...), poder fer pàgines per un viquiprojecte, etc. .
Ara bé, podem observar alguns aspectes de format de presentació que són millorables: les dates estan en notació anglosaxona, el Qid es mostra sencer i en tindríem prou amb un enllaç al seu item WD, els valors de "Ocupació" no es mostren en forma femenina. Si volem construir continguts per posar dins articles enciclopèdics, s'haurien de millorar.
Per poder mostrar correctament aquests continguts, cal intervenir en la seva edició.
Continua .. / ..
- ⇒ pestanya "Per començar" per veure les primeres passes per fer una nova llista.
- ⇒ pestanya "Tractament dades" per veure com editar continguts abans de mostrar-los.
El codi SPARQL bàsic que es requereix per fer una llista automàtica (veure pestanyes "Sintaxi" o "Començar"), es pot ampliar bé sigui per fer seleccions més complexes o, com mostrarem en aquesta secció, per fer tractaments de càlcul o d'edició amb les dades recuperades.
Recordem que les dades que es podran tractar per fer la llista són aquelles que hi figurin a columns=. bé siguin directament amb el codi de propietats (Pnnn), o de valors calculats al codi SPARQL (?<variable>).
Quan afegir tractament amb codi SPARQL
- Quan sigui imprescindible per obtenir un valor indirecte, més enllà d'una propietat de l'item que tractem, per exemple: la data de naixement de l'autor d'un quadre en un llistat d'obres, ja que es tracta d'una dada que no hi és a l'ítem de l'obra, sinó a l'item de l'autor de l'obra.
- Quan volem editar, donar format, fer càlculs, etc. entre valors de propietats per deixar el resultat en una variable a traspassar al codi de la wikidata list. Habitualment, resulta més fàcil de fer amb codi wiki dins la
row_template
, ja que disposa de més recursos per aquestes funcions. No obstant, si només es tracta d'una manipulació senzilla, fer-ho al codi SPARQL, ens estalviarà d'haver de crear i mantenir unarow_template
. A Wikidata list/exemple obra literària tenim un exemple on tots els tractament de dades s'han fet al codi SPARQL per evitar haver de tenir row i header templates. NO es recomanable si no es tenen bons coneixements del SPARQL.
En aquesta secció incorporem parts de codi a afegir al codi SPARQL per realitzar funcions específiques que acostumen a aparèixer en llistes automàtiques. Als exemples de casos se'n poden trobar més.
Recuperar "rang preferent" i la data associada
Les propietat que contenen sèries històriques (població, president, etc.) tenen el valor actual amb rang preferent i el qualificador de data (habitualment Data (P585), o Data d'inici (P580)) com a qualificador. Per recuperar el valor actual de la Població (P1082) i la data que correspon, farem servir:
OPTIONAL { ?item p:P1082 [ps:P1082 ?poblacio; pq:P585 ?data; wikibase:rank wikibase:PreferredRank] . }
Generació llapis amb enllaç a item WD
Tot i que a les row_template
tenim exemples de com generar el llapis amb l'enllaç a l'item WD per permetre fer modificacions, si aquesta és la única edició que hem de fer, ens podem estalviar haver de tenir una row_template
, generant-lo dins el codi SPARQL.
BIND (REPLACE(STR(?item), "http://www.wikidata.org/entity/", "", "i") as ?itemId). BIND (CONCAT ("[","[","File:Arbcom ru editing.svg|12px|center|", "Modifica les dades a Wikidata|", "link", "=","d:",STR(?itemId), "]","]") as ?llapis)
Recuperació article Viquitext
Per recuperar l'article de l'item d'un projecte germà, com Viquitext (wikisource en ca) a l'exemple, cal utilitzar:
OPTIONAL { ?wikisourceSitelink schema:isPartOf [ wikibase:wikiGroup "wikisource" ]; schema:inLanguage ?wikisourceLanguage; schema:about ?item.} BIND(IF(?wikisourceLanguage ="ca", ?wikisourceSitelink, "") AS ?wikisource)
Selecció "forma femenina de l'etiqueta"
Les propietats amb declinació de gènere (ocupació, càrrecs, etc.) han d'anar acompanyades de la propietat Forma femenina de l'etiqueta (P2521) que conté la versió declinada en femení del label de l'item. Per tant, quan algunes d'aquestes propietats forma part de la llista, s'ha d'aplicar el codi que es mostra si es vol que el contingut es mostri segons el gènere de la persona de cada línia del llistat. A l'exemple es mostra l'aplicació amb la Ocupació (P106):
OPTIONAL {?item wdt:P106 ?profession. OPTIONAL {?profession wdt:P2521 ?female_form_of_label. FILTER((LANG(?female_form_of_label)) = "ca")} OPTIONAL {?profession rdfs:label ?professionLabel. FILTER((LANG(?professionLabel)) = "ca")} } BIND(IF((?gender IN(wd:Q6581072, wd:Q1052281, wd:Q43445)) && (BOUND(?female_form_of_label)), ?female_form_of_label, ?professionLabel) AS ?professionText)
}
- Anem a provar aquest codi amb l'exemple bàsic de les pintores modernistes.
Versió obtinguda després d'aplicar header i row template | Versió amb codi de feminització de la professió | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{Wikidata list | sparql = SELECT * WHERE { ?item wdt:P106 wd:Q1028181; wdt:P135 wd:Q34636; wdt:P21 wd:Q6581072. } | columns = P18,label, P19,P569, P106, item | header_template=Wikidata list/headerrow/exemple ajuda 1 | row_template=Wikidata list/exemple ajuda 1 | sort=label | links = red | thumb = 60 | freq = 180 |
{{Wikidata list | sparql = SELECT * WHERE { ?item wdt:P106 wd:Q1028181; wdt:P135 wd:Q34636; wdt:P21 wd:Q6581072; wdt:P21 ?gender. OPTIONAL {?item wdt:P106 ?profession. OPTIONAL {?profession wdt:P2521 ?female_form_of_label. FILTER((LANG(?female_form_of_label)) = "ca")} OPTIONAL {?profession rdfs:label ?professionLabel. FILTER((LANG(?professionLabel)) = "ca")} } BIND(IF((?gender IN(wd:Q6581072, wd:Q1052281, wd:Q43445)) && (BOUND(?female_form_of_label)), ?female_form_of_label, ?professionLabel) AS ?professionText) } | columns = P18,label, P19,P569, ?professionText, item | header_template=Wikidata list/headerrow/exemple ajuda 1 | row_template=Wikidata list/exemple ajuda 1 | sort=label | links = red | thumb = 60 | freq = 180 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Informació actualitzada per un bot. Els canvis manuals es perdran quan s'actualitzi!
Fi de la llista autogenerada. |
Informació actualitzada per un bot. Els canvis manuals es perdran quan s'actualitzi!
Fi de la llista autogenerada. |
Notes comunes sobre la sintaxi
- la inclusió del codi entre OPTIONAL { <codi sparql> } fa que no formi part del filtre, és a dir, que si no existeix no es mostra, però no l'exclou de la selecció.
Continua .. / ..
- ⇒ pestanya "header-row" per veure perquè serveixen i com construir aquests elements.
- ⇒ pestanya "Exemples" per veure casos models.
Dins els paràmetres de la plantilla {{Wikidata list}} trobem header_template
i row_template
. Permeten indicar el nom de dues subplantilles (opcionals) on es pot escriure en codi wiki, com qualsevol altra plantilla, el tractament que voldrem que es faci per construir la capçalera i per construir les línies de la llista, respectivament.
Si bé les files de la taula són el resultat exclusiu de la selecció feta amb SPARQL, el contingut de les columnes i el seu ordre depèn, en primera instància, del paràmetre columns =, però mitjançant una row_template
es pot alterar l'ordre, editar el contingut, crear una columna amb informació combinada d'altres i deixar de mostrar-ne alguna de les definides a columns =.
header template
Recordem que havíem vist que les llistes automàtiques es materialitzen en una taula wiki generada pel ListeriaBot dins l'article. Doncs bé, sense la header_template
la capçalera contindrà el nom de les propietats que apareixen al paràmetre columns= o bé el text que haguem escrit darrera d'aquestes propietats separat pel signe de dos punt (:
). Per defecte, la taula permet ordenar per qualsevol columna.
Si volem una edició més complexa, per exemple, amb colors, fonts o mida de lletra diferents, o bé volem evitar alguna columna, farem servir header_template
- Com fer la
header_template
?. Exactament igual que el començament d'una taula wiki amb capçalera, és a dir:
- amb el codi
{|
per iniciar la taula i definir les seves característiques; el codi!
, un per cada columna, amb el text que hi voleu posar. També és pot fer servir el codi|+
per afegir una capçalera de taula, opcionalment. Per personalitzar característiques pròpies d'una taula, podeu consultar la seva documentació. - NO s'ha de fer servir cap separador de línia
|-
, ja que ho fa el ListeriaBot.
- ⇒Podeu veure totes les
header_template
agrupades a la seva categoria.
row template
Cada item seleccionat per formar la llista es converteix en una línia de la taula generada pel ListeriaBot.
Quan no existeix row_template
, el contingut definit a columns= esdevenen columnes de la taula, seguint la sintaxi pròpia de les taules wiki.
Quan sí que es fa servir, el listeriaBot substitueix la sintaxi de columnes de la taula, per una crida a la plantilla:<nom_plantilla row_template>
i li passa com a paràmetres el valor de cadascuna de les propietats descrites a columns =. D'aquesta forma, la sintaxi de la fila de la taula, la genera el codi que haguem escrit a la row_template
, amb total llibertat de format, orde i operacions a realitzar. Als exemples podem trobar:
- la unió de dos continguts en una columna (Ex:població (any); museu + núm.inventari, etc.);
- crides a una plantilla des de dins de la
row_template
per donar formats específics (Ex: dimensions d'una obra pictòrica) - crear una columna nova a partir d'un càlcul (Ex: densitat de població a les llistes de municipis,etc.)
- ⇒Podeu veure totes les
row_template
agrupades a la seva categoria.
Cas pràctic
Si agafem l'exemple bàsic que em vist vist a la pestanya: Sintaxi, aplicarem algunes millores d'edició.
- Posarem la data en notació DD-MM-AAAA
- Ocultarem el Qid de cada línia sota una imatge d'un llapis per descarregar visualment la llista.
- Afegirem una
header_template
per poder posar una icona com a capçalera del Qid i evitar un text massa llarg.
Sintaxi simplificada | Sintaxi amb header i row template | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{Wikidata list | sparql = SELECT * WHERE { ?item wdt:P106 wd:Q1028181; wdt:P135 wd:Q34636; wdt:P21 wd:Q6581072. } | columns = P18:Imatge,label:Nom, P19:Lloc naixement,P569:Data naixement, P106:Ocupació, item:Qid | sort=label | links = red | thumb = 60 | freq = 180
La construcció de la En aquest cas, el nombre de columnes és el mateix que el nombre de propietats que hi figuren al paràmetre columns.
Ara bé, quan alguna de les propietats que se li passen dins el paràmetre columns, no es mostrarà ocupant columna (per exemple,
perquè s'ha fet servir per un càlcul), amb la
|
{{Wikidata list | sparql = SELECT * WHERE { ?item wdt:P106 wd:Q1028181; wdt:P135 wd:Q34636; wdt:P21 wd:Q6581072. } | columns = P18,label, P19,P569, P106, item | header_template=Wikidata list/headerrow/exemple ajuda 1 | row_template=Wikidata list/exemple ajuda 1 | sort=label | links = red | thumb = 60 | freq = 180
{| class='wikitable sortable' style='width:100%' !scope="col" class="unsortable"| Imatge ! Nom ! Lloc naixement ! Data naixement ! Ocupació ! scope="col" class="unsortable"|[[File:Wikidata-logo.svg|16px|link=|Dades a Wikidata]]
|- | {{{p18|}}}<!--...... Imatge--> | {{{label|}}}<!--....... Nom--> | {{{p19|}}}<!--....... lloc naixement --> | style="text-align:center;" |{{#invoke:string|replace |source={{{p569|}}}|pattern=(%d%d%d%d)-(%d%d)-(%d%d)|replace=%3-%2-%1|plain=false}}<!--....... data naixement --> | {{{p106|}}}<!--....... ocupació --> <!--....... Wikidata--> | [[Fitxer:Arbcom ru editing.svg|12px|Modifica les dades a Wikidata|enllaç=d:{{#invoke:delink|delink|{{{item|}}}}}]] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Informació actualitzada per un bot. Els canvis manuals es perdran quan s'actualitzi! Fi de la llista autogenerada. |
Informació actualitzada per un bot. Els canvis manuals es perdran quan s'actualitzi!
Fi de la llista autogenerada. |
Notes de funcionament
- Les
header_template
i elrow_template
poden ser reutilitzables. Per exemple, si fem una llista automàtica per llistar els municipis d'una regió i volem mostrar els mateixos continguts en una altra, el codi de crida a la plantilla {{Wikidata list}} que hi haurà a l'article de cada regió, seran lleugerament diferents entre si, ja què el Qid canvia. Ara bé, laheader_template
irow_template
pot ser compartida, no cal duplicar-la per cada ús. Als exemples hem intentat que les columnes mostrades fossin igualment vàlides per municipis d'Alemanya o de Catalunya, etc., per reduir el nombre de header-row a crear (i mantenir). Ara bé, si hom necessita fer una variació, es pot fer agafant com a mostra els casos dels exemples i creant-ne de nous. - Criteris sobre els noms de plantilles. A fi de tenir ordenat un catàleg que pot créixer de forma important, totes les
header_template
,row_template
i les pàgines d'exemple, s'anomenen com a subplantilles de Wikidata list (plantilla:Wikidata list/<nom descriptiu>
).header_template:
Plantilla:Wikidata list/headerrow/<nom descriptiu>. És a dir, estan totes dins el nivellheaderrow
, per diferenciar-les de lesrow_template
, tot fent servir el mateix nom final per les parelles.
Continua .. / ..
- ⇒ pestanya "Tractament dades" per veure com editar continguts mitjançant el codi SPARQL abans de mostrar-los.
- ⇒ pestanya "Exemples" per veure casos models.
- ⇒Podeu veure tots els
codis d'exemples
; els tenim agrupats a la seva categoria.
Càrrecs
Llistes típiques d'articles tipus "Alcalde de..." o "Ministre / ministeri de ...", "Bisbe de ...". Complementàriament a fer la llista per l'article enciclopèdic, recomanem verificar la correcció de la sèrie mitjançant l'eina WD PositionHolderHistory, que no és perfecta, però detecta forats en una línia successòria i solapament de dates.
Alcaldes
- Pàgina amb codi i resultat: {{Wikidata list/exemple alcaldes}}
Imatge | Nom | Inici del mandat | Fi del mandat | Partit polític | ||
---|---|---|---|---|---|---|
Michael Bloomberg | 01-01-2002 | 31-12-2013 | Partit Demòcrata dels Estats Units Partit Republicà dels Estats Units |
|||
William Paulding | 01-01-1825 01-01-1827 |
01-01-1826 01-01-1829 |
Partit Demòcrata dels Estats Units | |||
Jimmy Walker | 01-01-1926 | 01-09-1932 | Partit Demòcrata dels Estats Units |
Ministres
- Pàgina amb codi i resultat: {{Wikidata list/exemple ministres}}
imatge | Titular | Partit | des de | fins a | Gabinet | Legislatura | ||
---|---|---|---|---|---|---|---|---|
Gaston Thorn | Partit Democràtic | (1979)(1977) |
(1980)(1979) |
Gabinet Werner-Thorn-Flesch Gabinet Thorn-Vouel-Berg |
26a legislatura de Luxemburg | |||
Colette Flesch | Partit Democràtic | (1980) | (1984) | Gabinet Werner-Thorn-Flesch | 26a legislatura de Luxemburg | |||
Jacques Poos | Partit Socialista dels Treballadors | (1984) | (1989) | Gabinet Santer-Poos I | 27a legislatura de Luxemburg |
Llistes d'obres
Exemples de llistes d'obres d'una persona (artista, arquitecte, escriptor, etc.).
- La propietat que apunta l'item de l'autor és diferent segons el tipus d'obra: Creador (P170) és la propietat genèrica, si bé, existeixen altres més específiques. Veure llista de casos.
Pintures
- Pàgina amb codi i resultat: {{Wikidata list/exemple obra plàstica}}
Obra escrita
- Pàgina amb codi i resultat: {{Wikidata list/exemple obra literària}}
Nom | Publicació | Títol | Llengua | Edició | Facsímil | ||
---|---|---|---|---|---|---|---|
Mar i cel | 1888 | català | |||||
Terra baixa | 1896 | català | |||||
La filla del mar | 1899 | català |
Entitats geogràfiques
Exemples de divisions territorials (regió, comarca, municipi, etc.).
- Els casos més habituals són els municipis d'una província (regió, land, o com es digui en cada indret), però poden imaginar-se altres combinacions.
- En aquests exemples acostuma a ser necessari tenir dues condicions de filtre: "on està situat", habitualment amb la P131, i "quin és l'objecte" (un municipi, una comarca, etc.). Sense el segon filtre, la llista mostraria tota mena d'elements que estiguin ubicats al territori determinat (edificis, muntanyes i altre orografia, parcs, etc.)
Municipis de l'entitat territorial immediatament superior (província, ...)
- Pàgina amb codi i resultat: {{Wikidata list/exemple municipis}}
Municipis de províncies de Catalunya, mostrant la comarca
- Pàgina amb codi i resultat: {{Wikidata list/exemple municipis comarca}}
Escut | Municipi | Comarca | Població | Superfície km² |
Densitat | Altitud | Codi postal |
Codi territorial |
|
---|---|---|---|---|---|---|---|---|---|
Agullana | Alt Empordà | 863 | 27,7 | 31,16 | 166 | 17707 | 170010 | ||
Aiguaviva | Gironès | 765 | 13,9 | 55,04 | 169 | 17181 | 170025 | ||
Albanyà | Alt Empordà | 155 | 94,4 | 1,64 | 239 | 17733 | 170031 | ||
Palafrugell | Baix Empordà | 23.244 | 26,9 | 864,09 | 64 | 17200 | 171175 |