Vikipedio:Lua/Moduloj/Wikidata

El Vikipedio, la libera enciklopedio
Salti al navigilo Salti al serĉilo
Ŝablona programado Diskutoj Lua Testoj Subpaĝoj
Modulo Esperanto English Deutsch

Modulo: Dokumentado

Wikidata – Modulo por elvoko de informoj el Wikidata baziĝantaj sur la Wikibase Client Lua-API.

Ĉi tiu modulo ekzistas en multaj projektoj, sed kun multaj malsamaj funkcioj kaj funkcionomoj. Ili ne estas kongruaj unu kun aliaj.

Atentigo: Por testi la datuman ekstraktadon per ĉi tiu modulo, povas esti uzata Wikipedia:Wikidata/Wikidata provejo kaj la rilata datuma objekto Q4115189, kiu ebligas ankaŭ liberan prilaboradon de ties proprietoj.

Funkcioj por ŝablonoj

La sekve donotaj ekzemploj rilatas al tio, ke la modulo estas uzata sur la paĝo de:Berlin resp. ties ligita Vikidatuma objekto Q64. La ĉi tie listigitaj rezultoj de ekzemploj estas ev. ne aktualaj.

claim

Redonas deklaron de Vikidatuma objekto ligita kun la aktuala paĝo. Deklaroj estas ĉe tio proprietoj de Vikidatuma objekto. Ĉi tiu funkcio ofertas disvastigitan funkciecon kompare al la vikie enplektita {{#property:}}.

Parametroj:

  • 1 – la Id de la proprieto (P…) aŭ la proprietonomo, kies deklaro estu redonata. Pro performancaj (rapidecaj) kaj persistaj kialoj (la nomo de proprieto povas ŝanĝiĝi) la aldono de Id estu preferata.
  • id – Id (Q…) de Vikidatuma objekto, al kiu estu akcesata. Se ĝi ne estas donita, tiam estas uzata tiu ligita kun la aktuala paĝo.
  • qualifier – Deklaroj povas enhavi kvalifikatoron, ekz. por kiu dato (P585) deklaro validas aŭ kiu determina metodo (P459) estis uzata
  • parameter – Deklaroj konsistas el kompleksaj datumtipoj, el kiuj normale nur la plej gravaj elementoj estas redonataj. Per parameter ĉi tiu "konduto" povas esti ŝanĝata. La unuopaj datumtipoj kaj ties eblaj parametroj estas (se parameter ne estas donata, la grase skribita elemento estas redonata):
    • Koordinatoj: latitude, longitude, altitude, precision, globe [Wikidata-URI, normale http://www.wikidata.org/entity/Q2 [tero]]
    • Numeroj: amount, unit, upperBound, lowerBound
    • Dato/tempo: time [ISO 8601], time:format (alĝustigita formatigo laŭ de:Hilfe:Vorlagenprogrammierung#Funktion time), timezone [Minutoj], before, after, precision (0 - Mrd. jaroj, 1 - 100 Mio. jaroj, ..., 6 - jarmilo, 7 - jarcento, 8 - jardeko, 9 - jaro, 10 - monato, 11 - tago, 12 - horo, 13 - minuto, 14 - sekundo), calendarmodel [Wikidata-URI, ekz. http://www.wikidata.org/entity/Q1985727 por la prolepta gregoria kalendaro aŭ http://www.wikidata.org/wiki/Q11184 por la julia kalendaro]
    • Wikidata-IDs: entity-type, numeric-id (Norme la titolo de la Vikidatuma objekto nomata per numeric-id estas redonata), link por Vikia ligilo
    • Teksto kun lingva markigo: language, text (Norme <span lang="[language]">[teksto]</span> estas redonata)
  • language – kondiĉe ke proprieto posedas plurajn deklarojn kun lingvaj markigoj, estas redonata tiu deklaro, kiu estas en la lingvo de la donita lingva mallongigo (ekz. language=de por la germana, language=en por la angla aŭ language=eo por esperanto)
  • list – se proprieto posedas plurajn deklarojn, eldonu ĉiujn kun la donita lista apartigilo (uzi \n resp. <br /> por linisalto)
  • includeempty – Lista apartigilo ankaŭ estas eldonata kaze de malplenaj valoroj
  • references – eldoni la donitajn fontojn (Atentigo: La eldono nuntempe ne sekvas la skemon por fontindikoj)
  • sort – Ordigo laŭ kvalifikatoroj
  • sortInItem – se la deklaroj de proprieto Wikidata-Items darstellen, do estas serĉata en ĉi tiu ero laŭ la en sortInItem donita proprieto kaj la valoro estas uzata kiel ordiga ŝlosilo. Atentu: bezonas sufiĉe da kalkulaj risurcoj!
  • inverse – eldonas la ordigitajn valorojn en inversaj sinsekvo
  • hasqualifier – eldonas nur deklarojn kun kvalifikatoroj. Povas esti limigata per proprieta Id (P…) al certa kvalifikatoro.
  • hassource – eldonas nur deklarojn kun referencoj. Povas esti limigata per proprieta Id (P…) al certa referenco. !P… ignoras referencon.
  • atdate – eldonas nur deklarojn, kiuj validas laŭ la donita en kvalifikatoro ekde (P580) kaj ĝis (P582) je la donita dato. Ĉe forestanta dato, estas uzata la hodiaŭa dato.
  • showerrors – se neniu deklaro povas esti trovata, difinas la kialon

Ekzemploj:

Ankoraŭ mankas:

Aldono

Kompare al la germana praulo nia modulo havas aldonon, tiel ke ĉe la enplektado en aliaj moduloj eblas la jeno:

wikidata.claim({args={pk,references="raw"} })

Ekzemplo por tio troveblas en la modulo {{geografiaĵoj}} jene:

r, ref = wikidata.claim({args={pk,references="raw"} })	

Tio ebligas uzon de pli ol unu referenco en la sama Vikidatuma ero.

getValue

Kombinas la funkciecon de claim kun la funkcio getValue de la angla Module:Wikidata, t.e. nur Vikidatumo estas pridemandata, se tio estas aldonata eksplicite (normale dum la plenigo de ŝablono). Ĉe uzado en ŝablono tio transdonas la kontrolon, ĉu Vikidatumoj estu uzataj, al la pleniganto de ŝablono. Tio povas esti helpa ĉe tio, teni la Vikikodon de ŝablono komprenebla.

Atentigo: La angla Vikidatuma modulo ĉe getValue ĉiam eliras de tio, ke la pridemandata proprieto estas ligilo al Vikipedia artikolo kaj ligas al ĝi. Ĉi tiu aŭtomata ligado ĉi tie ne okazas, sed devas esti difinata kiel en la malsupre donita ekzemplo eksplicite.

Parametroj:

  • vidu claim
  • 2 – Ĉiam redonas ĉi tiun donitan valoron, krom ke ĉi tie estas ABFRAGE_WIKIDATA, ĉe kio tiam la functio claim estas elvokata. (La angla FETCH_WIKIDATA ankaŭ funkcias, sed estu evitata favore al la esperanta versio.) Per antaŭdifinita ABFRAGE_WIKIDATA en la ŝablono la pridemando ankaŭ povas okazi, se parametro ne estis difinita.

Ekzemplo: Supozite ke la ŝablono Infobox Staat uzas pro la eldono de la proprieto ĉefurbo la ŝablonan kodon {{#invoke:Wikidata|getValue|P36|{{{HAUPTSTADT|}}}|parameter=link}} kaj en la artikolo Germanio tio estu plenigita jene:

  • {{Infobox Staat|…|HAUPTSTADT=[[Berlin]]|…}}Berlin, neniu Vikidatumo uziĝas
  • {{Infobox Staat|…|HAUPTSTADT=ABFRAGE_WIKIDATA|…}}Berlin, Vikidatumo uziĝas
  • {{Infobox Staat|…|HAUPTSTADT=|…}} →      , neniu Vikidatumo uziĝas
  • {{Infobox Staat|…|…}} →      , neniu Vikidatumo uziĝas

Se valoro estis antaŭdifinita per {{#invoke:Wikidata|getValue|P36|{{{HAUPTSTADT|ABFRAGE_WIKIDATA}}}|parameter=link}}:

  • {{Infobox Staat|…|HAUPTSTADT=[[Berlin]]|…}}Berlin, neniu Vikidatumo uziĝas
  • {{Infobox Staat|…|HAUPTSTADT=ABFRAGE_WIKIDATA|…}}Berlin, Vikidatumo uziĝas
  • {{Infobox Staat|…|HAUPTSTADT=|…}} →      , neniu Vikidatumo uziĝas
  • {{Infobox Staat|…|…}}Berlin, Vikidatumo uziĝas (Tio fakte malfaciligas la legeblon de la Vikia kodo)

descriptionIn

Redonas la Vikidatuman priskribon de la Vikidatuma objekto en la donita lingvo (Vikia lingvokodo).

Parametroj:

  • 1 – Vikia lingvokodo
  • 2 – Id (Q…) de la Vikidatuma objekto al kiu estu akcesata. Se ĝi ne estas donata, tiam estas uzata tiu, ligata kun la aktuala paĝo.

Ekzemplo:

  • {{#invoke:Wikidata|descriptionIn|nl}}hoofdstad en deelstaat van Duitsland

labelIn

Redonas la Vikidatuman titolon de la Vikidatuma objekto en la donita lingvo (Vikia lingvokodo).

Parametroj:

  • 1 – Vikia lingvokodo
  • 2 – Id (Q…) de la Vikidatuma objekto al kiu estu akcesata. Se ĝi ne estas donata, tiam estas uzata tiu, ligata kun la aktuala paĝo.

Ekzemplo:

  • {{#invoke:Wikidata|labelIn|nl}}Berlijn

labelOf

Redonas la esperantlingvan titolon de la donita Vikidatuma objekto aŭ proprieto.

Parametro:

  • 1 – ID de la Vikidatuma elemento (Q…) aŭ proprieto (P…). Se ĝi ne estas donata, tiam la elemento de la aktuala paĝo estas uzata.

Ekzemplo:

  • {{#invoke:Wikidata|labelOf|Q1589880}}Haus
  • {{#invoke:Wikidata|labelOf|P281}}poŝtkodo

pageId

Redonas la Id de Vikidatuma objekto, por ekzemple kontroli, ĉu la aktuala paĝo estas ligata kun Vikidatuma objekto aŭ ĉu la Vikidatuma objekto estas alidirektilo al alia Vikidatuma objekto.

Parametro:

  • 1 – Id (Q…) de la Vikidatuma objekto al kiu estu akcesata. Se ĝi ne estas donata, la ligita kun la aktuala paĝo estas uzata.

Ekzemplo:

  • {{#invoke:Wikidata|pageId}}Q64, se vokata sur la paĝo Berlino
  • {{#invoke:Wikidata|pageId|Q18511155}}Q9404406, ĉar alidirektilo

sitelinkOf

Redonas la titolon de la paĝo en la esperanta Vikipedio ligita kun la Vikidatuma elemento.

Parametro:

  • 1 – Id (Q…) de la Vikidatuma objekto al kiu estu akcesata. Se ĝi ne estas donata, tiam tiu ligita kun la aktuala paĝo estas uzata.

Ekzemplo:

  • {{#invoke:Wikidata|sitelinkOf|Q42}}Douglas Adams

sitelinkCount

Nombras la paĝojn ligitajn kun la Vikidatuma objekto.

Parametroj:

  • 1 – Projekta filtrilo. Normale ĉiuj Vikiaj projektoj estas konsiderataj, ĉe wiki nur la Vikipediaj lingvaj versioj kaj Komunejo, ĉe wikibooks, wikinews, wikiquote, wikisource kaj wikivoyage ĉiam nur la lingvaj versioj de ĉi tiuj projektoj. Krome ankaŭ konkrete povas esti aldonata lingva versio kiel enwiki, kiu siavice redonas 0 aŭ 1, depende de tio ĉu ekzistas artikolo en la lingva versio.
  • 2 – Id (Q…) de la Vikidatuma objekto al kiu estu akcesata. Se ĝi ne estas donata, tiam tiu ligata kun la aktuala paĝo estas uzata.

Ekzemploj:

  • {{#invoke:Wikidata|sitelinkCount}}299, se vokata sur la paĝo Berlino
  • {{#invoke:Wikidata|sitelinkCount|wiki}}250, se vokata sur la paĝo Berlino
  • {{#invoke:Wikidata|sitelinkCount|wikinews}}14, se vokata sur la paĝo Berlino

badges

Redonas la distingojn de la paĝo ligita kun la Vikidatuma objekto en la donita Vikimedia projekto. La distingoj kutime estas leginda artikolo (Q17437798)elstara artikolo (Q17437796). Pluraj distingoj ne estu, sed estus eldonataj apartigitaj per oblikvaj strekoj.

Parametroj:

  • 1 – Id de la Vikimediaj projektoj, ekz. enwiki por la angla Vikipedio.
  • 2 – Id (Q…) de la Vikidatuma objekto al kiu estu akcesata. Se ĝi ne estas donata, tiam tiu ligita kun la aktuala paĝo estas uzata.

Ekzemplo:

  • {{#invoke:Wikidata|badges|dawiki}}Q17437798 (leginda artikolo de la dana Vikipedio), se vokata sur la paĝo Berlino

Debug-funkcioj

La sekvaj funkcioj povas esti elvokataj sur Vikipediaj paĝoj (precipe Specialaĵo:Malfaldi ŝablonon) por debuggaj aŭ evoluaj celoj, por ricevi pli detalajn informojn pri programeraroj kaj Vikidatumaj datumaj strukturoj.

printEntity

Redonas ĉiujn Vikidatumajn datumojn ligitajn kun la aktuala paĝo.

Parametro:

  • 1 – Id (Q…) de la Vikidatuma objekto al kiu estu akcesata. Se ĝi ne estas donita, tiam estas uzata tiu ligita kun la aktuala paĝo.

debug

Se modula alvoko redonas skripteraron, per tio povas esti elvokataj la faktaj erarinformoj (erarpriskriboj kaj evtl. loko).

Parametro:

  • 1 – Nomo de la funkcio
  • pliaj parametroj – Parametroj de ĉi tiu funkcio

Ekzemplo:

  • {{#invoke:Wikidata|debug|claim|P1082|qualifier=P585}} anstataŭ {{#invoke:Wikidata|claim|P1082|qualifier=P585}} por ricevi konkretan erarinformon pri la lasta, se tie aperas skripteraro.

Submodulaj funkcioj

Ekzistas kelkaj submoduloj, kies funkcioj parte jam estas uzeblaj:

bildoj

Ĝi redonas bildon aŭ eble eĉ bildojn el la Vikidatuma ero bildo (P18). La rilataj priskriboj troveblas en priskribo de plurmediaĵo (P2096).

Parametroj:

  • Esperantaj
    • grandeco - grandeco de la bildo (defaŭlte: neniu)
    • defaŭlta grandeco - defaŭlta grandeco de bildo (defaŭlte: frameless)
    • priskribo de bildoj - por pluraj bildoj
    • priskribo de bildo - por ununura bildo
    • priskribo de bildoX - por pluraj bildoj, ĉe kio anstataŭ X estu uzata iu numeroj ekde 1 ĝis la nombro de la ekzistantaj bildoj
  • Anglaj
    • id - vidu supre, ĉe claim
    • showerrors - difinas, ĉu erarmesaĝo estu montrata aŭ ne
    • default - defaŭlte redonata bildo (ĝi ne estas el Vikidatumoj, sed el la modula elvoko!)

En la Vikidatuma ero de la artikolo Villány

{{#invoke:Wikidata/bildoj|bildoj}}  

redonas Lua-eraro en Modulo:Wikidata/bildoj, linio 189: attempt to index field '?' (a nil value).

Se priskribo jam ekzistas en la nomita Vikidatuma ero, sufiĉas la jenas kodo:

{{#invoke:Wikidata/bildoj|bildoj}}

Se la priskribo forestas, ĝi povas esti transdonata aparte, jene:

Ĉe unusola bildo:
{{#invoke:Wikidata/bildoj|bildoj|priskribo de bildo=}}
Ĉe pli ol unu bildo estas du variantoj:
{{#invoke:Wikidata/bildoj|bildoj|priskribo de bildoj=priskribo1 ;;; priskribo2}}

{{#invoke:Wikidata/bildoj|bildoj|priskribo de bildo1=priskribo1|priskribo de bildo2=priskribo2}}

Kodopeco el {{Informkesto urbo}}

{{#invoke:Wikidata/bildoj|bildoj|priskribo de bildoj={{{priskribo de bildoj|}}}|priskribo de bildo={{{priskribo de bildoj|{{{bildo-priskribo|}}}}}}}}


Ĝeneralaj atentigoj pri la enplektado de moduloj

Enplektado okazas ĉiam en la formato

{{#invoke: Wikidata | Funkcionomo | valoro1 | valoro2 | nomoX=valoro … }}

La parametroj povas esti nomitaj aŭ nenomitaj kiel ĉe ŝablonoj.

Se nekonata signoĉeno venas de ekstere (kiel ŝablonaj parametroj), ĉiam estu laborata kun la formo 1=valoro.

Pliajn informojn vi trovos sur Helpo:Lua.