Wikipedia Diskussion:Lua/Modul/Wikidata/Archiv/2015

Sortierung der Eigenschaften nach Qualifier-Wert

Hallo, ich habe hier einen fall, wo ich nicht mehr weiter weiß. Ich will die Eigenschaften von Property 710 sortiert nach dem jeweiligen Qualifier Property 413 sortieren. Hat das Modul da irgendeine Funktion, die mir diese Aufgabe löst, oder gibt es da vielleicht noch ein anderes Modul? Falls es bisher noch nichts desgleichen gibt würde mir es auch ausreichen, dass zu jeder Eigenschaft der Qualifier mitausgegeben wird. Im konkreten beispiel sollte dass dann so aussehen: Roy Emerson, Eins; Arthur Ashe, Zwei; Fred Stolle, Drei; Clark Graebner, Vier; Roger Taylor (Tennisspieler), Sechzehn;... Schon mal im vorraus vielen Dank für die Hilfe. Gruß, Korrektor123 (Diskussion) 12:59, 24. Jan. 2015 (CET)

Nein, das Sortieren geht nicht, aber letzteres indem du dir die Listen der Namen und Nummern ausgeben lässt und dann zusammenfügst, also:
{{#invoke:Text|zip|{{#invoke:Wikidata|claim|P710|list=/}}|{{#invoke:Wikidata|claim|P710|qualifier=P413|list=/}}|sep=/|isep=, |osep=; }} --Mps、かみまみたDisk. 16:13, 24. Jan. 2015 (CET)
Es ist aber möglich, direkt in Wikidata die Aussagen zu sortieren. [Bearbeiten] anklicken und dann erscheinen rechts kleine Pfeile um die Aussagen zu verschieben. Hier in Wikipedia erscheinen dann die Aussagen in der gleichen Reihenfolge wie auf Wikidata. --Pasleim (Diskussion) 18:40, 24. Jan. 2015 (CET)
Das kann man natürlich zusätzlich auch noch machen, wobei dass nicht ganz stabil ist in dem Sinne dass es bei diesen Daten keine natürliche Sortierung gibt und andere vielleicht nach Nachnamen sortieren wollen und evtl. auch tun. --Mps、かみまみたDisk. 18:51, 24. Jan. 2015 (CET)

Erstmal vielen Dank für die Antwort. Das Auftrennen der ganzen Liste macht mir noch gewisse Probleme. Jetzt wollte ich noch fragen, gibt es irgendeine Funktion, die mir nur eine Eigenschaft inklusive Qualifier-Wert ausgibt. Er soll mir also wenn ich eine Zahl (als Beispiel: 3) eingebe die dritte Eigenschaft + Qualifier von P710 ausgeben. In diesem Fall wäre dass dann Fred Stolle, Drei. Gibt es da sowas in der Art? --Korrektor123 (Diskussion) 17:07, 26. Jan. 2015 (CET)

Das geht mit titleparts, also: {{#titleparts:{{#invoke:Wikidata|claim|P710|list=/}}|1|3}} und {{#titleparts:{{#invoke:Wikidata|claim|P710|qualifier=P413|list=/}}|1|3}}. --Mps、かみまみたDisk. 17:50, 26. Jan. 2015 (CET)

Liste als Aufzählung

Ist es möglich die per Wikidata ausgegebene Liste z.B.

{{#invoke:Wikidata|claim|P400|list= |parameter=link}}

als Aufzählung unteinander zu formatieren? Also z.B.

  • Test 1
  • Test 2

Das ganze sollte innerhalb einer Infobox geschehen. --Toru10 (DiskussionWPCS) 09:44, 26. Feb. 2015 (CET)

nicht elegant, aber es funktioniert: <ul><li>{{#invoke:Wikidata|claim|P400|list=</li><li>|parameter=link}}</li></ul> --Pasleim (Diskussion) 11:14, 26. Feb. 2015 (CET)
Ich habe den Code mal aktualisiert, das geht jetzt mit * {{#invoke:Wikidata|claim|P400|list=\n*|parameter=link}}. --Mps、かみまみたDisk. 14:38, 26. Feb. 2015 (CET)
Vielen Dank, funktioniert super! :) Noch eine Frage: Ich kann in einer Infobox nicht immer davon ausgehen, dass sich mehr als ein Eintrag in der Liste befindet. Daher ist ein * in dem Fall ja nicht erwünscht. Wie kann ich die Anzahl der Einträge der Liste dafür am besten messen? --Toru10 (DiskussionWPCS) 19:30, 26. Feb. 2015 (CET)

Kann man dem Code auch noch so umschreiben, dass man den Befehl n\ nutzen kann, um einen Zeilenumbruch zu erzeugen ohne das Aufzählungszeichen? --Toru10 (DiskussionWPCS) 10:16, 8. Sep. 2015 (CEST)

"\n" (nicht "n\") sollte in jeder Kombination und auch allein funktionieren. Tut es das nicht? --Mps、かみまみたDisk. 10:21, 8. Sep. 2015 (CEST)
Nein tut es leider nicht. Bitte ausprobieren auf Assassin’s Creed II: {{#invoke:Wikidata|claim|P400|list=\n|parameter=link}} {{#invoke:Wikidata|claim|P400|list=\n*|parameter=link}} Mit Aufzählung funktioniert es. --Toru10 (DiskussionWPCS) 10:40, 8. Sep. 2015 (CEST)
Ah, ok. Das funktioniert schon, allerdings passiert dasselbe wie wenn man im Quelltext Einträge einfach untereinander schreibt. Wenn man in der Ausgabe einen Zeilenumbruch will muss man natürlich <br /> verwenden. --Mps、かみまみたDisk. 10:44, 8. Sep. 2015 (CEST)

Alles klar, vielen Dank. :) Da bin ich gar nicht auf die Idee gekommen. Irgendwie hatte ich immer nur an die Lösung mit \n gedacht und hatte die Lösung mittels br komplett ausgeblendet. --Toru10 (DiskussionWPCS) 14:47, 8. Sep. 2015 (CEST)

Ging mir auch so, habe es daher in der Doku ergänzt. –Queryzo ?! 15:10, 8. Sep. 2015 (CEST)

Ranks

Die Funktion {{#invoke:Wikidata|claim|P1082}} scheint nicht mehr Aussagen mit preferred rank den Aussagen mit normal rank zu bevorzugen. Vergleiche [1] mit [2] --Pasleim (Diskussion) 18:20, 1. Mär. 2015 (CET)

Jetzt besser? --Mps、かみまみたDisk. 17:27, 5. Mär. 2015 (CET)
Viel besser, vielen Dank. --Pasleim (Diskussion) 17:38, 5. Mär. 2015 (CET)

claim Filter

Freue mich schon, wenn claims gefiltert werden können :) . Aus meiner (und einiger anderer) Sicht wäre es sinnvoll "Datenherkunft (P143)" komplett herauszulassen für den Filter und auch umseitig in der Aufzählung zu streichen. Dies wäre eine Selbstreferenzierung (Daten aus Wikipedia werden in Wikidata verwendet um Daten in Wikipedia über Wikidata zu referenzieren). In Wikipedia kommt es zudem wegen der Verwendung von diesem Property in den Einzelnachweisen von Wikidata (als vermeindliche Quelle) immer und immer wieder zu Missverständnissen. Grüße, Conny 00:02, 4. Mär. 2015 (CET).

Ich werde das Beispiel mal ändern. Das stammt noch aus der Zeit als bei Wikidata noch keine ordentlichen Quellen angegeben wurden, sondern fast nur auf die Sprachversion verwiesen wurde aus denen die jeweiligen Daten übernommen wurden. --Mps、かみまみたDisk. 12:13, 5. Mär. 2015 (CET)

Ist meine Annahme richtig, dass derartige Dinge mit dem claim realisiert werden können? Grüße, Conny 08:50, 5. Mär. 2015 (CET).

Ja, das ist korrekt. Ich möchte aber darauf hinweisen, dass das auch jetzt schon geht in dem man einfach den entsprechenden Qualifier abfragt und dann mit dem gewünschten Wert vergleicht. Der Filter soll das nur effizienter machen in dem Sinne, dass die Funktion eben nicht mehrmals aufgerufen werden muss, sondern nur einmal. Das Bedürfnis für einen „Mechanismus […], dass ein Wert eines Wikidata-Eintrages in Wikipedia nur dann übernommen wird, wenn ein durch die hiesige Community definierte Bedingung gegeben ist“ war ein Grund, warum ich das Modul entwickelte um eben die Qualifier abfragen zu können, die das erlauben, weil das mit #property zwar angekündigt aber eben nicht implementiert wurde. --Mps、かみまみたDisk. 12:13, 5. Mär. 2015 (CET)

mw.wikibase.renderSnak(s) verfügbar

Hi, ich wollte nur kurz Anmerken, dass ab jetzt die Funktionen mw.wikibase.renderSnak/mw.wikibase.renderSnaks verfügbar sind. Mit ihnen können beliebige Snaks gerendert werden. Ich hoffe damit können die hier selbst geschriebenen Formatter hier wegfallen. Grüße, Hoo man (Diskussion) 23:38, 4. Mär. 2015 (CET)

Hallo, das große Problem ist ja dass die Zeit/Datumsangaben noch nicht vollständig lokalisiert sind: so gibt mw.wikibase.renderSnak bei Tagesangaben "31 Dezember 2013" zurück (mit fehlenden . nach dem Tag) und bei größeren Zeiträumen englische Angaben wie "2 billion years CE", "20000 years BCE", "1980s" oder "3 millenium". Nebenbei: bei englischen Spracheinstellungen wird bei letzterem "3. millenium" zurückgegeben – wieso ist da ein Punkt? --Mps、かみまみたDisk. 16:28, 5. Mär. 2015 (CET)
Stimmt, das hatte ich gar nicht auf dem Schirm :/ Das ist phab:T50962 und wird hoffentlich bald gelöst. Wenn es sonst noch Probleme gibt, gerne Bescheid sagen, oder Bugs aufmachen. - Hoo man (Diskussion) 16:42, 5. Mär. 2015 (CET)

Qualifier von bestimmten Aussagen verwenden

Hallo, ich habe ein kleines Problem mit dem Property Auszeichnung. Ich würde mir gerne den Qualifier Zeitpunkt von der Aussage Auszeichnung zurück geben lassen. Das allerdings nur wenn die Aussage den Wert International Tennis Hall of Fame enthält. Ansonsten soll er nichts zurückgeben. Geht das überhaupt, oder gibt es dafür vielleicht noch andere Lösungen? Gruß, Korrektor123 (Diskussion) 17:08, 25. Mär. 2015 (CET)

Ich würde das wie folgt lösen {{#ifeq: {{#invoke:Wikidata|claim|P166|parameter=numeric-id}} | 52454 | {{#invoke:Wikidata|claim|P166|qualifier=P585}} | }} d:Q52454 ist die Wikidata-Id von International Tennis Hall of Fame --Pasleim (Diskussion) 19:29, 25. Mär. 2015 (CET)

Das funktioniert leider nur fast. Solange P166 nur die Tennis Hall of Fame enthält funktioniert es wunderbar. Allerdings geht es nicht mehr wenn die Person auch noch andere Auszeichnungen erhalten hat (da hab ich mich oben schlecht ausgedrückt). Mir wäre noch die Idee gekommen, dass man das so vielleicht lösen könnte: {{str match | {{#invoke:Text|zip|{{#invoke:Wikidata|claim|P166|list=/|parameter=numeric-id}}|{{#invoke:Wikidata|claim|P166|qualifier=P585|list=/}}|sep=/|isep=, |osep=; }} | 52454,\d\d\d\d }}. Da scheitert es aber daran, wenn bei Auszeichnungen die vor der Tennis Hall of Fame stehen der Qualifier Zeitpunkt fehlt --Korrektor123 (Diskussion) 16:51, 26. Mär. 2015 (CET)

of=

@Mps: Ist es möglich, als neues Feature einen of-Parmater hinzuzfügen, der es ermöglicht, Daten aus anderen Objekten auszulesen, als dem, mit dem der Artikel verknüpft ist? --MGChecker – (📞| 📝| User:MGChecker/Bewertung) – HDR 23:48, 23. Jun. 2015 (CEST)

Hallo, den gibt es schon unter den Namen id. Ich habe den nicht in der Doku erwähnt, weil der wahlfreie Zugriff auf andere Objekte bisher noch nicht für deWP aktiviert ist. --Mps、かみまみたDisk. 00:14, 24. Jun. 2015 (CEST)
@Mps: Danke für die schnelle Information. Für wann ist denn die Akktivierung geplant? --MGChecker – (📞| 📝| User:MGChecker/Bewertung) – HDR 14:27, 24. Jun. 2015 (CEST)
Ein Termin wurde noch nicht bekannt gegeben (d:Wikidata:Arbitrary access). Es sollte aber demnächst (nach der Wikimania) passieren. --Succu (Diskussion) 14:32, 24. Jun. 2015 (CEST)
Jetzt für den 3. August angekündigt. --Succu (Diskussion) 19:52, 5. Jul. 2015 (CEST)
@Mps: Dann rein damit in die Dokumentation! --MGChecker – (📞| 📝| title=Bewertung) 17:11, 11. Aug. 2015 (CEST)
Wird morgen freigeschaltet, vielleicht könnte man zum Start eine aktuelle Dokumentation der neuen Funktionen haben? Das wäre super! –Queryzo ?! 17:22, 11. Aug. 2015 (CEST)
Doku ist jetzt aktualisiert. --Mps、かみまみたDisk. 15:37, 12. Aug. 2015 (CEST)

Prüfen, ob mit WD verknüpft

Wie prüft man am besten, ob ein Artikel mit Wikidata verknüpft ist? –Queryzo ?! 15:01, 11. Aug. 2015 (CEST)

Mit der Funktion pageId. Wenn ein Artikel mit Wikidata verknüpft ist liefert diese die Wikidata-Id zurück, wenn er nicht verknüpft ist gibt diese nichts zurück. --Mps、かみまみたDisk. 15:37, 11. Aug. 2015 (CEST)
Danke! –Queryzo ?! 16:06, 11. Aug. 2015 (CEST)

Unnötiger Linktext

Bei der Auflistung von Werten gibt es derzeit den unschönen Effekt, dass bei gleichlautenden Sitelinks und WD-Labels trotzdem beides angegeben wird: {{#invoke:Wikidata|claim|P6|list=, |parameter=link|id=Q64}} ergibt Michael Müller, Klaus Wowereit, Eberhard Diepgen, Walter Momper, Eberhard Diepgen, Richard von Weizsäcker, Hans-Jochen Vogel, Dietrich Stobbe, Klaus Schütz, Heinrich Albertz, Willy Brandt, Franz Amrehn, Otto Suhr, Walther Schreiber, Ernst Reuter (siehe Quelltext). Man müsste in printDatavalueEntity() abfragen, ob linkTarget gleich linkName ist und diesem Fall nur [[linkTarget]] ausgeben. –Queryzo ?! 23:05, 12. Aug. 2015 (CEST)

Sollte jetzt korrigiert sein. --Mps、かみまみたDisk. 14:15, 13. Aug. 2015 (CEST)
Super, danke! –Queryzo ?! 14:59, 13. Aug. 2015 (CEST)

Ich habe Vorlage:Navigationsleiste Kader des FC Valenciennes probeweise auf Wikidata umgestellt. Wäre es möglich, bei nicht vorhandenen Artikeln die entsprechenden Rotlinks zu kriegen? --Leyo 02:30, 21. Aug. 2015 (CEST) PS. Eine Sortierung (z.B. alphabetisch nach Nachnamen) wäre auch schön.

Meiner Meinungn nach am besten ein Parameter redlink oder so, dann sind alle zufrieden. --MGChecker – (📞| 📝| Bewertung) 10:23, 21. Aug. 2015 (CEST)
Ich habe mal unter Modul:Wikidata/Test den Parameter redlink eingefügt. Bitte testen. --Pasleim (Diskussion) 11:27, 21. Aug. 2015 (CEST)
Danke! Ich hab's da erfolgreich getestet, aber nur im Vorschaumodus. --Leyo 12:22, 21. Aug. 2015 (CEST)
Sieht gut aus, {{ers:#invoke:Wikidata/Test|claim|P161|id=Q16864688|list=, |parameter=redlink}} ergibt Adèle Haenel, Brigitte Roüan, Q16637371, Nicolas Wanczycki, William Lebghil. –Queryzo ?! 12:53, 21. Aug. 2015 (CEST)
Man muss hier allerdings beachten, dass so auch Falschverlinkungen entstehen können falls ein Namensgenosse bereits einen Artikel besitzt ist. --Mps、かみまみたDisk. 15:10, 21. Aug. 2015 (CEST)
Man könnte prüfen, ob der Link schon existiert und nur rotverlinken, falls nicht. –Queryzo ?! 15:28, 21. Aug. 2015 (CEST)
Das scheint mir undurchdacht, dann gäbe es ja wohl nämlich gar keine Blaulinks mehr durch die Funktion. --MGChecker – (📞| 📝| Bewertung)
Klar, wenn ein deWP-Lemma existiert (d.h. per WD zugeordnet ist) -> Blaulink, ansonsten nur verlinken, wenn das deutsche Label a) gesetzt ist und b) als Lemma noch nicht in deWP existiert. Ganz einfach! –Queryzo ?! 16:02, 21. Aug. 2015 (CEST)
Das ginge schon mittels mw.title.new(Artikelname):exists ist aber wie dessen Vorlagen-Pendent #ifexist eine teure Funktion bei der auf die Datenbank zugegriffen werden muss, so dass das für große Listen ungeeignet ist. --Mps、かみまみたDisk. 16:48, 21. Aug. 2015 (CEST)
Wo läge die Grenze etwa? --Leyo 01:04, 22. Aug. 2015 (CEST)
Pro Artikel sind für alle verwendeten Vorlagen und Module insgesamt maximal 500 teure Funktionen erlaubt (Hilfe:Vorlagenbeschränkungen). --Mps、かみまみたDisk. 01:14, 22. Aug. 2015 (CEST)
Eine Kadernavi würde da nur einen Bruchteil davon benötigen. Eine andere Möglichkeit wäre wohl, dass bei einem nicht vorhandenen Artikel das Lemma bzw. der Klammerzusatz irgendwo vordefiniert würde. --Leyo 01:18, 22. Aug. 2015 (CEST)
Unter d:Wikidata:Forum#Lemma vordefinieren habe ich noch einer Möglichkeit dazu gefragt. --Leyo 01:48, 29. Aug. 2015 (CEST)
d:Wikidata:Article placeholder input sollte die Lösung für dieses Problem sein. In rund zwei Monaten könnte es laut Lydia soweit sein. --Leyo 23:07, 10. Sep. 2015 (CEST)

Kombinierte Abfrage von Bezeichnung und Qualifier

Für die Vorlage:Navigationsleiste Kader des FC Lausanne-Sport möchte ich in derselben Abfrage Qualifier und Bezeichung erhalten. Oder anders formuliert, kann man folgende Abfragen zu einer kombinieren, so dass jeweils 1 Spielername_A | 2 Spielername_B | 5 Spielername_C | etc. angezeigt wird?

{{#invoke:Wikidata|claim|P527|qualifier=P1618|list= | |parameter=link|id=Q20870955}}
{{#invoke:Wikidata|claim|P527|list= | |parameter=link|id=Q20870955}}

--Leyo 01:44, 25. Aug. 2015 (CEST)

Das geht mit der Funktion zip im Modul:Text, also {{#invoke:Text|zip|Liste1|Liste2|sep1=Trennzeichen in Liste1|sep2=Trennzeichen in Liste2|isep=womit soll in der Ausgabe die Nummer vom Spielernamen getrennt werden|osep=womit sollen in der Ausgabe die zusammengeführten Einträge getrennt werden}}. --Mps、かみまみたDisk. 12:28, 26. Aug. 2015 (CEST)
Danke, aber das hört sich kompliziert an. Ich wäre froh, wenn du's an diesem Beispiel demonstrieren könntest. Aussehen soll es etwa wie bei Vorlage:Navigationsleiste Kader von Manchester United. --Leyo 14:53, 26. Aug. 2015 (CEST)
Ich habe es mal eingebaut. --Mps、かみまみたDisk. 16:13, 26. Aug. 2015 (CEST)
Vielen Dank! Eine Sortierung wäre noch schön, aber das scheint ja noch nicht implementiert zu sein. --Leyo 16:18, 26. Aug. 2015 (CEST)

Abfrage nach Datum (zwischen Startzeitpunkt und Endzeitpunkt)

Hallo, ich bräuchte eine Abfrage nach Datum mit einem zusätzlichen Parameter Datum. Ein Statement kann ja mehrere Werte haben, die über die Qualifier Vorlage:Wikidata-Property und Vorlage:Wikidata-Property unterschieden werden können, als Beispiel vielleicht die Gemeindezugehörigkeit zu einem Bezirk. der Bezirk Bruck-Mürzzuschlag, Property P150. Beim Zugriff auf die Liste aller Gemeinden möchte ich nur die Gemeinden bekommen, die zum per Parameter übergebenen Zeitpunkt tatsächlich Gemeinden im Bezirk sind. Fehlwert für den Datumsparameter ist das aktuelle Datum. Ich mache überlegungstechnisch mal die Einschränkung, dass sich die Propertywerte auf der Zeitachse nicht überlappen.

Ich habe nur den Aufruf {{#invoke:Wikidata|claim|P150|id=Q853690|list= * }} gefunden, der liefert:
Aflenz Kurort * Aflenz Land * Allerheiligen im Mürztal * Altenberg an der Rax * Breitenau am Hochlantsch * Bruck an der Mur * Etmißl * Frauenberg * Ganz * Gußwerk * Halltal * Kapellen * Kapfenberg * Kindberg * Krieglach * Langenwang * Mariazell * Mitterdorf im Mürztal * Mürzhofen * Mürzsteg * Mürzzuschlag * Neuberg an der Mürz * Oberaich * Parschlug * Pernegg an der Mur * Sankt Ilgen * Sankt Katharein an der Laming * Sankt Lorenzen im Mürztal * Sankt Marein im Mürztal * Sankt Sebastian * Spital am Semmering * Stanz im Mürztal * Thörl * Tragöß * Turnau * Veitsch * Wartberg im Mürztal * Aflenz * Sankt Barbara im Mürztal * Tragöß-Sankt Katharein
… Kraut und Rüben

Ort Vorlage:Wikidata-Property Vorlage:Wikidata-Property  zu lesen als
Aflenz Kurort   31. Dezember 2014  Aflenz Kurort war bis 31. Dez. 2014 (inkl.) eine Gemeinde im Bezirk Bruck-Mürzzuschlag, danach hat sie aufgehört, als Gemeinde zu existieren. (oder alternative Lesart: wurde einem anderen Bezirk zugeordnet)
Kindberg Kindberg war vor und nach dem Stichtag 1. Jän. 2015 Gemeinde im Bezirk Bruck-Mürzzuschlag.
Aflenz 1. Jänner 2015 Aflenz ist eine mit 1. Jän. 2015 neu gegründete Gemeinde im Bezirk Bruck-Mürzzuschlag, davor hat sie nicht existiert. (oder alternative Lesart: war vorher einem anderen Bezirk zugeordnet)

Die neue Funktion soll je nach Abfragedatum liefern:

< 1. Jän. 2015  Aflenz Kurort, Kindberg, …
≥ 1. Jän. 2015 Aflenz, Kindberg, … (Sortierung mal angenommen)
ohne = aktuelles Datum Aflenz, Kindberg, … (Sortierung mal angenommen)

Der explizite Datumsparameter ist mE notwendig, weil ein Stichtag per Gesetz etwas anderes ist, als der Zeitpunkt der Umstellung in der WP und nochmal was anderes ist, als der Zeitpunkt der Datenerfassung in WD. (zuerst muss die Artikelstruktur bereinigt werden).

Weiters wäre eine Funktion, die nur die Ids der gefundenen Listenelemente zurückgibt, nützlich, da damit dann weitere Parameter abgefragt werden können.

Wäre sowas möglich?

lg --Herzi Pinki (Diskussion) 20:13, 26. Aug. 2015 (CEST)

Habe gerade das da gesehen. Bin nicht sicher, ob die Lösung über den rank immer passt. Jedenfalls ist das Setzen des ranks ein zusätzlicher Aufwand zum Setzen von Endedatum bei einem Propertywert und Startdatum beim nächsten Propertywert. Wenn man das als historisierte Daten betrachtet, dann sollte es einen einfachen Zugriff über das Datum als Selektor geben. --Herzi Pinki (Diskussion) 22:19, 26. Aug. 2015 (CEST)

Seitenauflauf in der Skriptfehlerkategorie

Hallo Modulatoren, kann es sein, dass diese Änderung irgendeinen Fehler erzeugt? Diese Kategorie hat sich plötzlich aus unerfindlichen Gründen mit 792 Seiten angefüllt. Falls alle „120281 Vorlageneinbindung(en)“ davon betroffen wären, sollte da eventuell bald eine Nachbesserung erfolgen oder hat jemand eine Idee was sonst der Auslöser sein und wie man das beheben könnte? --Liebe Grüße, Lómelinde Diskussion 11:33, 31. Aug. 2015 (CEST)

(von BD:PerfektesChaos #792 Skriptfehler) Gemach. LG --PerfektesChaos 12:29, 31. Aug. 2015 (CEST)
Ist korrigiert. --Mps、かみまみたDisk. 14:54, 31. Aug. 2015 (CEST)
Prima, vielen Dank. Sie leert sich wieder. --Liebe Grüße, Lómelinde Diskussion 15:05, 31. Aug. 2015 (CEST)

Prüfen, ob Beschreibung fehlt

Ich würde gern prüfen, ob das zugeordnete Wikidata-Objekt eine Beschreibung hat. Bis dato bin ich (im BNR) den Weg gegangen, die Länge zu prüfen. Dies führte bei mehr als 50 Zeichen zu einer Fehlermeldung, die sowohl heißen konnte, dass der Text zu lang ist oder die Beschreibung fehlt (Text der Fehlermeldung ist „zu lang“):

{{#ifexpr: {{Str len|{{#invoke:Wikidata|descriptionIn|de}}}} > 50 | <span style="display:none">[[Vorlage:IMDb/Wartung/Beschreibung fehlt oder ist zu lang]]</span> }}

Im ANR funktioniert das leider nicht, da dann ein Skriptfehler ausgeworfen wird. Gibt es evt. noch eine elegantere Lösung? –Queryzo ?! 17:44, 2. Sep. 2015 (CEST)

Wenn ich dein Problem richtig verstehe, dann müsste eigentlich dieses Script dir zumindest teilweise weiterhelfen: mw.loader.load("//www.wikidata.org/w/index.php?title=User:Yair rand/WikidataInfo.js&action=raw&ctype=text/javascript"); // [[d:User:Yair rand/WikidataInfo.js]] --Toru10 (DiskussionWPCS) 14:35, 14. Sep. 2015 (CEST)
Nein, das Skript ist nicht für mich persönlich, sondern die Funktion soll in die Vorlage {{IMDb}} eingebaut werden und dort eine Wartungsliste erzeugen. –Queryzo ?! 15:14, 14. Sep. 2015 (CEST)
Achso, das passt dann natürlich nicht. --Toru10 (DiskussionWPCS) 17:12, 14. Sep. 2015 (CEST)
Ich habe den Code jetzt robuster gestaltet, so dass keine Fehler mehr geworfen werden sollten falls das Objekt oder die Beschreibung nicht existiert. Der Prüfung kann jetzt mittels {{#if:{{#invoke:Wikidata|descriptionIn}}|Beschreibung gefunden|keine Beschreibung gefunden}} erfolgen (das de kann weggelassen, da bei fehlendem Sprachkürzel automatisch das der hiesigen Wikipedia verwendet wird). --Mps、かみまみたDisk. 19:46, 14. Sep. 2015 (CEST)

@Mps: Leider werden bei fehlender Beschreibung immer noch Fehler abgeworfen. –Queryzo ?! 23:57, 23. Sep. 2015 (CEST)

Jetzt besser? --Mps、かみまみたDisk. 14:34, 24. Sep. 2015 (CEST)
Sieht gut aus! –Queryzo ?! 17:24, 24. Sep. 2015 (CEST)

Lesbarkeit von Quelltext bei Wikidata-Einbindung

Eigentlich wurde die Möglichkeit mit FETCH_WIKIDATA doch dazu geschaffen, dass der Quelltext für Wikipediafremde leichter zu lesen bleibt. Da stellt sich mir aber die Frage, warum wir eigentlich dann FETCH_WIKIDATA nehmen anstatt eines deutschen Begriffes den auch jeder versteht? Also z.B. ABFRAGE_WIKIDATA. Oder gibt es irgendeinen Grund dafür FETCH_WIKIDATA nehmen zu müssen, den ich übersehe? --Toru10 (DiskussionWPCS) 14:09, 11. Sep. 2015 (CEST)

Das hat die Bezeichnung, weil ich die Idee von enWP übernommen hatte und mir damals keine zufriedenstellende passende deutsche Bezeichnung einfiel. Ich kann das aber einbauen. --Mps、かみまみたDisk. 20:56, 11. Sep. 2015 (CEST)
Ich wäre schon dafür einen deutschen Begriff zu nehmen, um die Wikipedia für so viele Menschen wie möglich verständlich zu halten. Gibt es noch andere Meinungen? --Toru10 (DiskussionWPCS) 10:25, 12. Sep. 2015 (CEST)
Man kann ja beides erlauben. --MGChecker – (📞| 📝| Bewertung) 11:33, 13. Sep. 2015 (CEST)
Ok, dann bauen wir doch ABFRAGE_WIKIDATA ein. Ich denke der Begriff ist verständlich und passend. Als Standard sollten wir in dewiki dann den deutschen Begriff festlegen und das englische Fetch nur als "geht-auch-Option" darstellen. --Toru10 (DiskussionWPCS) 12:29, 13. Sep. 2015 (CEST)
Ist jetzt eingebaut. --Mps、かみまみたDisk. 19:01, 13. Sep. 2015 (CEST)

Anzahl der Interwikis

Kann abfragen, wieviele Artikel einem WD-Objekt zugeordnet sind? –Queryzo ?! 14:07, 14. Sep. 2015 (CEST)

Das wäre grundsätzlich möglich ist aber im Modul noch nicht eingebaut. Was wäre denn der Anwendungsfall? --Mps、かみまみたDisk. 14:37, 14. Sep. 2015 (CEST)
Ich bin dabei, sukzessive die in Deutschland anlaufenden Kinofilme in WD einzupflegen bzw. die Artikel anzulegen, siehe hier. Über eine Vorlage werden bereits einige Fehler abgefragt, z.B. fehlende Beschreibung (siehe oben) oder fehlende WD-Eigenschaften. Da ich gesehen habe, dass einige Filme in WD bereits sehr viele Interwikis haben, der deutschsprachige Artikel aber jeweils noch fehlt, wäre es interessant mit auszugeben, wenn eine gewisse Anzahl an Interwikis überschritten wird. Diese Information könnte man auch an die RFF weiterleiten als eine Art „Most Wanted in Wikidata“. –Queryzo ?! 15:12, 14. Sep. 2015 (CEST)
Ich habe das mal als sitelinkCount (Beschreibung) implementiert. --Mps、かみまみたDisk. 20:18, 14. Sep. 2015 (CEST)
Besten Dank! Es scheint allerdings nicht mit arbitrary access zu funktionieren: {{#invoke:Wikidata|badges|sitelinkCount|wiki|Q19795309}} erzeugt einen Fehler, obwohl das Objekt existiert: National Gallery (Q19795309). –Queryzo ?! 09:47, 15. Sep. 2015 (CEST)
Ah, ohne badges geht’s. –Queryzo ?! 11:45, 15. Sep. 2015 (CEST)

Hier das Ergebnis, vielen Dank für die neue Funktion! –Queryzo ?! 10:41, 16. Sep. 2015 (CEST)

Weiterleitungen

Wie prüft man am besten, ob ein WD-Objekt eine Weiterleitung ist, z.B. Lou! - Klitzegeheimes Tagebuch (Q20795311)? –Queryzo ?! 14:45, 15. Sep. 2015 (CEST)

Ist jetzt ergänzt. --Mps、かみまみたDisk. 15:44, 17. Sep. 2015 (CEST)
Besten Dank! –Queryzo ?! 15:54, 17. Sep. 2015 (CEST)

Sortierung von Werten einer Eigenschaft nach Qualifikator

Hallo! Etwas ähnliches ist im Januar hier schonmal gefragt worden, aber es tut sich ja viel auf WikiData und in den Modulen, daher noch ein Versuch: Ist es irgendwie möglich, die Werte innerhalb einer Eigenschaft nach einem Qualifikator zu sortieren? Beispiel: d:Q167615, hier möchte ich die Liste der Trainer (in d:Property:P286) nach dem Startzeitpunkt ihrer Trainereigenschaft (als Qualifikator, d:Property:P580) sortieren. Gibt es da irgendeine Möglichkeit? Falls nein, ist absehbar, wann soetwas implementiert sein könnte? Ich denke, das würde die Möglichkeiten von WikiData in Tabellen und Infoboxen erheblich erhöhen. Grüße, Yellowcard (D.) 12:20, 16. Sep. 2015 (CEST)

Siehe hier. –Queryzo ?! 12:34, 16. Sep. 2015 (CEST)
Danke, wenn natürlich auch nicht hundertprozentig befriedigend. ;) Das heißt, ein LUA-Programmierer könnte das Modul:Wikidata durchaus so erweitern, dass die Sortierbarkeit ermöglicht wird? Könnte man hier nicht WMDE um Unterstützung bitten? Wie viel Aufwand wäre das denn schätzungsweise? Yellowcard (D.) 14:21, 16. Sep. 2015 (CEST)
Du willst wikipediaseitig sortieren? Das ergibt ja erstmal ein Kuddelmuddel. Ich würde erstmal warten, bis die sich bei WD geeinigt haben. –Queryzo ?! 14:30, 16. Sep. 2015 (CEST)
Ich denke, wikipediaseitig wäre mittelfristig sinnvoller, weil dann bedarfsabhängig sortiert werden kann. Beispiel Vereinsstationen eines Fußballspielers: In den meisten Anwendungsgebieten dürfte die chronologische Sortierung sinnvoll sein (Sortierung nach Qualifier Startzeitpunkt), in anderen Fällen aber die alphabetische Sortierung. Das könnte zum Streit auf WD führen, wenn zwei Sortierungen für unterschiedliche Anwendungsfälle oder wegen unterschiedlicher Vorgehensweisen in den verschiedenen Sprachversionen benötigt werden, denn auf WD muss man sich ja für genau eine Vorgehensweise festlegen, und das am besten einheitlich. Ergo: Die wikipediaseitige Sortierung ist mittelfristig IMO ziemlich wichtig. Yellowcard (D.) 14:36, 16. Sep. 2015 (CEST)
Das sehe ich auch so. Beispielsweise möchten bei Mannschaftskadern (Beispiel) vielleicht die einen nach Nachnamen sortieren, die anderen nach Trikotnummer. --Leyo 21:26, 16. Sep. 2015 (CEST)
@Mps: Ich pinge Dich mal an, da Du den größten Teil des Moduls programmiert hast (dafür ein riesiges Danke!). Kannst Du meine beiden Fragen oben beantworten, also a) ob eine solche Sortierung mittels eines Lua-Moduls bereits umsetzbar wäre und b) falls ja, wieviel Aufwand das in etwa wäre? Dann würde ich, falls a) mit ja beantwortet werden kann und sich mittelfristig niemand findet das umzusetzen, mal bei WMDE anfragen, ob da Unterstützung möglich wäre. Grüße, Yellowcard (D.) 19:58, 21. Sep. 2015 (CEST)
Mit sort=P580 sollte das nun gehen. Falls die Liste mit dem jüngsten Datum beginnen sollte, füge noch inverse=1 hinzu. --Pasleim (Diskussion) 00:40, 22. Sep. 2015 (CEST)
Ich hab's ausprobiert: Es wird zwar sortiert, aber nach einem für mich unklaren Kriterium (jedenfalls nicht alphabetisch). --Leyo 01:37, 22. Sep. 2015 (CEST)
Die Funktion unterstützt zurzeit erst die Sortierung nach Qualifiern. mit sort=P1618 könnte nach Spielernummer sortiert werden, da allerdings Spielernummer vom Datentyp string ist, wird wie folgt sortiert: 10, 11, 12, 2, 22, 3 --Pasleim (Diskussion) 07:47, 22. Sep. 2015 (CEST)
Das Testmodul sortiert nun auch Zeichenketten, die nur aus Ziffern bestehen, korrekt. Damit kann eine Kaderliste sortiert nach Spielernummern erstellt werden. --Pasleim (Diskussion) 12:06, 22. Sep. 2015 (CEST)
Sortierung nach Alphabet oder Zahlen mit identischer Anzahl Stellen funktioniert im Hauptmodul bereits hervorragend, danke Pasleim! Yellowcard (D.) 18:15, 22. Sep. 2015 (CEST)
Auch da, trotz „Doppelsortierung“, aber mit der von Pasleim genannten Einschränkung. --Leyo 19:44, 22. Sep. 2015 (CEST)
Von mir auch ein Danke an Pasleim. @Pasleim: Baust du die Zwangs-Zahlenkonvertierung noch ins Hauptmodul ein? Ich würde dann getQualifierValue nämlich vereinfachen wollen, da man die Überprüfungen nicht doppelt implementieren muss und bei Zeitangaben einfach nur snak.datavalue.value.time zurückzugeben nicht funktioniert wenn man Zeiten vor und nach Christus miteinander vergleicht, da letztere in Wikidata mit einem + als Präfix gespeichert werden und das Pluszeichen in Strings vor dem Minuszeichen sortiert wird. Besser wäre daher wohl:
local function getQualifierSortValue(claim, qualifierId)
	local snak = getQualifierSnak(claim, qualifierId)
	if snak and snak.snaktype == "value" then
		if snak.datavalue.type == "time" then
			return getSnakValue(snak, "time")
		else
			return getSnakValue(snak)
		end
	end
end
--Mps、かみまみたDisk. 22:04, 22. Sep. 2015 (CEST)
Danke für die Verbesserung, habe deine Funktion übernommen. Auch die Zwangs-Zahlenkonvertierung ist nun im Hauptmodul. Vorlage:Navigationsleiste Kader des FC Lausanne-Sport sind nun schon ziemlich gut aus.--Pasleim (Diskussion) 23:04, 22. Sep. 2015 (CEST)

@Pasleim: Angenommen, der gewählte Qualifier wären Personen-Items. Gäbe es auch eine Möglichkeit, bei diesen Personen nach dem Nachnamen zu sortieren? Ggf. müsste auf das Property Familienname (P734) zurückgegriffen werden? Yellowcard (D.) 21:56, 22. Sep. 2015 (CEST)

P734 scheint mir doch nicht passend, dort wird ein Datenobjekt erwartet, kein String. Das dürfte allgemein schwierig werden. Gibt es eine andere Möglichkeit? Yellowcard (D.) 21:59, 22. Sep. 2015 (CEST)
Wären vielleicht die Inhalte von SORTIERUNG zugänglich? --Leyo 23:16, 22. Sep. 2015 (CEST) PS. Das Problem dabei wären nicht existierende Artikel.
Puh, ich glaube, das wäre für viele Anwendungsfälle eine wichtige Funktion, aber mir fällt ehrlich gesagt nicht ein, wie man das von hier aus implementieren sollte. Vielleicht behelfsweise eine Sortierung nach dem letzten Wort eines Qualifiers ermöglichen? Ist aber nur ein sehr rudimentärer Behelf, der bei aus mehreren Worten bestehenden Nachnamen fehlschlägt. Aber wie kann man bei einem Item zu einer Person den Nachnamen ermitteln? Das ist vielleicht eine Frage, die direkt auf WikiData geklärt werden müsste – oder hat hier jemand eine Idee? Yellowcard (D.) 14:55, 24. Sep. 2015 (CEST)
Hm, vielleicht Bezeichnung minus Vorname(n)? Bei Lionel Messi sollte dies wohl gehen, bei Luiz Felipe Scolari ist's schon schwieriger. --Leyo 22:52, 27. Sep. 2015 (CEST)
Eigentlich müsste das doch mittels der Eigenschaft Familienname (P734) einfach gehen, wenn man bei der Eigenschaft auch Freitext zulassen würde. Verstehe nicht, warum das nicht geht. Yellowcard (D.) 21:17, 28. Sep. 2015 (CEST)
Okay, der Grund, warum die Eigenschaft ein Datenobjekt verlangt, scheint eher historische Gründe zu haben: Bei der Einführung 2013 ging es noch nicht anders. Wir sollten uns dafür einsetzen, das auf WikiData zu ändern, dann wäre eine Sortierung nach Nachnamen leicht möglich. Zunächst habe ich das im Forum angesprochen: d:Wikidata:Forum#Familienname. Würde mich über Beteiligung freuen. Grüße, Yellowcard (D.) 21:24, 28. Sep. 2015 (CEST)
@Leyo: Es funktioniert doch mit Familienname (P734). Man muss halt bei Spielern mit solchen Nachnamen, für die noch kein Datenobjekt existiert, eines anlegen. Das ist recht arbeitsintensiv, aber es scheint nicht anders zu gehen. Am Ende funktioniert dann die Sortierung nach Nachnamen: {{Navigationsleiste Kader von Montreal Impact}}. Bleibt bei Navigationsleisten lediglich das Problem der Verlinkung bei noch nicht existierenden Artikeln, da können wir derzeit wohl nichts machen. Grüße, Yellowcard (D.) 11:31, 29. Sep. 2015 (CEST)
Das klingt echt gut! Dann wären wir dem Ziel ja schon sehr nahe.
Allerdings hat die Sache IMHO einen Haken: Ich halte es für sehr unschön, dass die Familiennamen im Kader-Item angegeben werden müssen. So etwas gehört in die Items der einzelnen Spieler und von dort abgerufen. Dies müsste mittelfristig möglich sein, da eine solche Funktionalität beispielsweise zur Erstellung von gewissen Tabellen unabdingbar ist. --Leyo 00:41, 1. Okt. 2015 (CEST)
Das stimmt und technisch müsste es seitens WikiData ja auch möglich sein; das wäre also ebenfalls etwas, das hier im Modul umgesetzt werden müsste. Leider kann ich es mangels Lua-Programmierkenntnissen nicht. Grüße, Yellowcard (D.) 00:49, 1. Okt. 2015 (CEST)
Ich kann den Aufwand nicht einschätzen. Vorsorglich hatte ich es als Wunsch eingetragen. --Leyo 00:57, 1. Okt. 2015 (CEST)
@Pasleim, Mps: Was meint ihr zur Umsetzbarkeit bzw. zum Aufwand? --Leyo 16:41, 6. Okt. 2015 (CEST)

@Leyo: Ich habe mir über die Sortierung über Eigenschaften der verlinkten Items heute den Kopf zerbrochen. Nicht ganz ohne stolz kann ich verkünden, dass es mir, glaube ich, gelungen ist, die Funktionalität ins Testmodul zu Implementieren. Anstelle des Parameters sort= ist der Parameter sortInItem= zu verwenden. Das Lua-Modul sucht dann im verlinkten Item nach der angegebenen Eigenschaft, liest diesen Wert aus und nutzt ihn als Sortierschlüssel.

  • Dabei ist zu beachten: Es müssen die Eigenschaften von entsprechend vielen Wikidata-Items ausgelesen werden. Jedes Auslesen gilt als teure Funktion und die Gesamtzahl der teuren Funktionen ist begrenzt. Ab einer gewissen Anzahl zu soriterenden Elementen wird die Funktion also abbrechen.
  • Ich habe {{Navigationsleiste Kader von Montreal Impact}} gerade umgestellt. Die sortierte Spielerliste wird nun folgendermaßen generiert:
    • {{#invoke:Wikidata/Test|claim|P527|list=&#32;&#124;&#32;|id=Q21011427|sortInItem=P734|parameter=link}}
  • Falls einzelne zu sortierende Elemente die Eigenschaft nicht enthalten, wird das wie ein Leerstring "" interpretiert. Diese Werte stehen dann also ganz oben (bzw. bei inverse=ja ganz unten).
  • Ich bitte um intensive Tests. Falls alles funktioniert wie erwartet, würde ich die Funktionalität dann bald ins Hauptmodul übertragen.

Viele Grüße, Yellowcard (D.) 18:08, 7. Okt. 2015 (CEST)

  • Toll, vielen Dank! Soweit ich sehe, passt das. Zwei Fragen:
    • Ab welcher ungefähren Anzahl an zu sortierenden Elementen wird die Funktion abbrechen? Könnte es schon für einige Navigationsleisten knapp werden oder sind diese im sicheren Bereich?
    • Wie sieht es mit der Sortierung von Umlauten und anderen Sonderzeichen aus?
    --Leyo 22:45, 7. Okt. 2015 (CEST)
Zu 1) Der Standardwert bei MediaWiki sind 99 Aufrufe, weshalb ich etwas Sorgen hatte. Habe aber mittlerweile rausgefunden, dass hier in der de.wp der Grenzwert bei 500 liegt. Da ist also eine Menge Luft. Die Montreal-Navigationsleiste hat bei 29 Spielern 30 teure Funktionen, zusätzlich zu den Sortierungen also nur eine mehr. Daher: Bei einzelnen Navigationsleisten stellt das kein Problem dar. 2) Gemäß Doku der Sortierfunktion werden Sonderzeichen gemäß „lokaler Einstellungen“ behandelt. Bei den Umlauten ä, ö, ü funktioniert die Sortierung korrekt (sprich: Behandlung wie a, o, u). Wie es mit exotischeren Zeichen aussieht, müsste man mal ausprobieren. Grüße, Yellowcard (D.) 22:51, 7. Okt. 2015 (CEST)
Ich habe gerade kein gutes Testobjekt dafür zur Hand. Bei Vorlage:Navigationsleiste Kader des FC Valenciennes habe ich's erfolgreich getestet. Nur bei d:Q60550 weiss ich wegen der zwei Nachnamen nicht, wie das korrekt gehandhabt wird. --Leyo 00:27, 8. Okt. 2015 (CEST)
Vielleicht könnte man Damjan Đoković, Ante Šapina, Duje Ćaleta-Car oder andere Lemmata mit Sonderzeichen-Nachnamens-Erstbuchstabe testweise ins Item aufnehmen und die Sortierung überprüfen. --Leyo 03:46, 15. Okt. 2015 (CEST)
Bei den beiden erstgenannten habe ich nun die Nachnamens-Items erstellt und dann dort ergänzt. Am einfachsten könnte man es testen, wenn man diese vorübergehend in ein bestehendes Kader-Item aufnehmen würde und sich dann die Sortierung anschaut. Sollen wir dies machen, wenn wir mal beide online sind? --Leyo 00:31, 19. Okt. 2015 (CEST)
@Leyo: Es gibt das Wikidata-Testitem Wikidata-Spielwiese (Q4115189), mit dem man gut rumspielen kann. Ich habe die Spieler dem Item hinzugefügt und auf Wikipedia:Wikidata/Wikidata Spielwiese sortieren lassen. Spontan fällt auf, dass es mit Duje Ćaleta-Car Probleme zu geben scheint (wird vor Rene Adler) einsortiert. Wir sollten weitere Problemfälle finden und dann schauen, dass wir die Lokalisierungs-Einstellungen entsprechend anpassen lassen können. Feel free to test! ;) Grüße, Yellowcard (D.) 11:56, 19. Okt. 2015 (CEST)
Kunststück, ich habe ja auch nur bei den beiden erstgenannten Nachnamens-Items erstellt, da ich bei Ćaleta-Car nicht weiss, ob es ein Nachname ist oder zwei. ;-)
Ich habe nun noch einige Spieler aufgenommen, welche gleich vor oder nachher einsortiert werden sollten. Es scheint alles zu klappen. Zeit für eine Live-Schaltung des Testmoduls? --Leyo 12:36, 19. Okt. 2015 (CEST)
Ach deswegen! :D Ich hatte mich schon gewundert, warum ausgerechnet ein verhältnismäßig normaler Buchstabe zu streiken schien. Die Funktion ist seit einigen Tagen bereits Live im Wikidata-Modul, da ich auch bei anderen Testszenarien keine Probleme erkennen konnte. Ich denke, wir können das nun breitflächig tun. Falls es irgendwo zu unerwartetem Verhalten kommt, sind ja Anpassungen jederzeit möglich. Grüße, Yellowcard (D.) 17:33, 19. Okt. 2015 (CEST)
Könnte man eigentlich Modul:Wikidata (testweise) in eine andere WP-Sprachversion (einfach so) übernehmen, damit man die Wikidata-Kadernavis dort live demonstrieren könnte? --Leyo 00:23, 20. Okt. 2015 (CEST)
Da das Modul, wenn ich das richtig sehe, auf keine anderen Module zugreift und einzig über die Wikibase-Anbindung, die auch in allen anderen WP-Sprachversionen zur Verfügung steht, funktioniert, sollte das IMO funktionieren. Letztendlich wäre ohnehin ein zentral gepflegtes Wikidata-Modul sinnvoller, als dass jede Version ihr eigenes Süppchen kocht. Ich weiß aber nicht, wie man das am besten organisiert. Grüße, Yellowcard (D.) 01:04, 20. Okt. 2015 (CEST)
en:Modul:Wikidata wäre sogar noch frei, aber vielleicht sollte man es für Demozwecke besser erst einmal im BNR parkieren (falls dies bei einem Modul möglich ist). --Leyo 01:12, 20. Okt. 2015 (CEST)
Meiner Erinnerung nach ist das nicht möglich, Lua-Module werden nur im Modul:-Namensraum ausgeführt (vom Trick über die Spezial:Vorlagenspielwiese abgesehen). Aber hat die en.wp denn gar kein Wikidata-Modul? Wie sieht es mit anderen Sprachversionen aus? Sind wir die einzigen, die da schonmal mutig waren? Yellowcard (D.) 13:23, 20. Okt. 2015 (CEST)
Ups, mein Fehler! Unter en:Module:Wikidata gibt es eines. Die Funktionalitäten habe ich aber noch nicht überblickt. --Leyo 13:29, 20. Okt. 2015 (CEST)
Ein erster Blick offenbart ein Dilemma: Die beiden Module verfügen über einige gemeinsame Funktionen, allerdings teilweise unterschiedlich benannt, zudem scheint das en-Modul über Funktionen zu verfügen, die wir nicht haben – und umgekehrt. Ziemlich unschön und vor allem produziert es unnötige Arbeit und verhindert Synergien. Ich rufe mal PerfektesChaos dazu und vermute, er kann uns mehr über die sinnvolle zentrale Verwaltung von Lua-Modulen verraten? (@PC: Du musst diese Diskussion nicht lesen, die Frage ist: Wie werden Lua-Module sinnvoll zentral verwaltet, sodass die Projekte nicht parallel Funktionen entwickeln und sich somit unnötige Arbeit machen, statt Synergien zu bilden?) Yellowcard (D.) 13:42, 20. Okt. 2015 (CEST)
  1. Indem es weltweit nur eine gültige Version gibt, die als Wasserfall (downstream/upstream) verbreitet wird:
    • BETA:Module:Wikidata
      d:Module:Wikidata‎
      w:en:Module:Wikidata
      w:de:Modul:Wikidata
      w:eo:Modulo:Wikidata
      w:fr:Module:Wikidata
  2. Indem man auslesbare Versionsangaben in den Code schreibt.
    • Schlaumeier wenden ein, das sei überflüssig, wir hätten ja die Versionsgeschichte, das haben wir ja noch nie so gemacht. Wenn man allerdings zwischen Wikis, Beta und lokaler Festplatte kopiert, weiß man nicht mehr, wo welche Version jetzt bearbeitungsmäßig auf welchem letzten Stand war, weil die Abspeicherung der Seite Wochen nach der Änderung passiert und sich inzwischen die Programmierung der Mutterversion schon dreimal geändert hatte.
    • Beispiel: Diese Modulversion und diese Modulversion sind offensichtlich auf gleichem Stand und haben die gleichen Funktionen, da sie identisches Datum tragen.
    • Das vorgenannte Beispiel zeigt auch die Bereitstellung zur automatischen Auswertung; Test().serial ist der Bezugswert.
    • Hier bereits eine mundgerechte Aufbereitung, ob die momentane Bibliothek zu den anderen Modulen und Vorlagen passt. Damit kann man bei frischen Funktionen gezielte Fehlermeldungen und Wartungskats werfen; nach einem halben Jahr kann die Abfrage dann wieder raus, wenn sich das überall rumgesprochen hat.
  3. Lokale Erweiterungen können über Untermodule temporär einbezogen werden, bis das zentral übernommen wurde:
    Modul:Wikidata/dewiki
    • Die Existenz eines lokalen Untermoduls kann die Mutterversion sogar automatisch prüfen (noch nichtmal „teuer“) und den Funktionsumfang entsprechend erweitern.
    • /local wäre weniger schlau, weil man dann nicht mehr /dewiki und /enwiki nebeneinander speichern kann.
  4. Indem die englischsprachige Dokumentation der Mutterversion präzise, ausführlich und aktuell ist.
    • Nebst Testverfahren.
    • Dann kann man der Mutterversion hinterherübersetzen und entsprechend dem lokalen Stand hierzuwiki einpflegen.

VG --PerfektesChaos 12:45, 21. Okt. 2015 (CEST)

Property-ID zurückgeben?

Noch eine Frage – hört sich eigentlich leicht an, aber einen Weg habe ich noch nicht gefunden. Aus einem WD-Eintrag zu einer Person lese ich den Geburtsort (d:Property:P19) aus. Ich benötige zusätzlich das Geburtsland. Das steht nicht im Item der Person, aber natürlich im Item des Geburtsorts. Ich bräuchte also irgendwie nicht den deutschen Text des Geburtsorts, sondern die ID, um dann in einer weiteren Abfrage das Land im Eintrag zum Ort auszulesen. Wie bekomme ich das hin? Yellowcard (D.) 15:04, 16. Sep. 2015 (CEST)

versuch mal {{#invoke:Wikidata/Test|claim|P19|paramter=id}} --Pasleim (Diskussion) 21:18, 16. Sep. 2015 (CEST)
Das funktioniert aber so einfach nicht, denn eine Person, die 1958 in Moskau geboren wurde, wurde nicht in Russland geboren. 94.218.177.215 21:20, 16. Sep. 2015 (CEST)
Im Hauptmodul ist es parameter=numeric-id und gibt nur die Nummer 749556 statt Wikidata/Test mit parameter=id Q749556 zurück. Dem müsste dann bei Übergabe an einem zweiten Wikidata-Abruf für den Landesnamen dann ein Q vorangestellt werden. --Mps、かみまみたDisk. 10:04, 17. Sep. 2015 (CEST)
Funktioniert super, danke! Yellowcard (D.) 18:09, 22. Sep. 2015 (CEST)

Datum formatieren

Moin, ich möchte über den list-Parameter eine Reihe von Datumsangaben von Wikidata beziehen. Diese sind dort allerdings tagesgenau hinterlegt, ich benötige aber nur das Jahr. Ist es irgendwie möglich, das Datumsformat in der Liste anzupassen? Gruß, -- hgzh 19:00, 22. Sep. 2015 (CEST)

Vor dem Problem stand ich letzte Woche auch, ich habe keine Lösung gefunden. Yellowcard (D.) 19:12, 22. Sep. 2015 (CEST)
Als „schmutzige“ Variante fällt mir nur {{Str replace|2011-12-31T00:00:00Z|%-%d%d%-%d%dT%d%d:%d%d:%d%dZ|||ja}} ein, das schnippelt alles bis auf das Jahr aus dem Ausgabestring raus. Schön ist aber anders. -- hgzh 20:08, 22. Sep. 2015 (CEST)
schöner ist {{#time:Y|2011-12-31T00:00:00Z}}. Beide Varianten funktionieren aber nicht, wenn man mit list eine Reihe von Datumsangaben bezieht. Ein weiteres Problem ist, wenn auf Wikidata die Genauigkeit für das Datum auf Jahrhundert gesetzt ist, dann sollte für 2011-12-31T00:00:00Z nicht 2011 angezeigt werden, sondern 21. Jahrhundert. --Pasleim (Diskussion) 21:11, 22. Sep. 2015 (CEST)
Ja, ich hatte auch überlegt, ob man die Time-Parserfunktion irgendwie benutzen kann, geht aber so nicht. Meine Variante von oben funktioniert mit mehreren Datumsangaben, wenn man die komplette Liste als ersten Parameter übergibt. Konkret geht es mir um Einwohnerzahlen und ihre Erfassungszeitpunkte, da werden Jahrhundert-Angaben eher selten vorkommen. -- hgzh 21:27, 22. Sep. 2015 (CEST)
Ich würde hier %-%d%d%-%d%dT.-Z verwenden, was kürzer ist und vor allem auch noch funktioniert falls mal Millisekunden vorhanden sein sollten, was wohl nicht passieren sollte, aber man weiß ja nie.
Es ginge aber schon sehr schnell zu implementieren, dass man mittels parameter=time:Zeitformatstring erzwingt das die Time-Parserfunktion verwendet wird, zumal die Time-Parserfunktion auch jetzt schon innerhalb des Moduls genutzt wird um Datumsangaben zu formatieren. Wie Pasleim sagt würde das natürlich zu fehlerhaften Ausgaben kommen, wenn die Time-Formatanweisung eine höhere Präzision hat als das Datum selbst besitzt. --Mps、かみまみたDisk. 21:52, 22. Sep. 2015 (CEST)
Eine solche Implementierung fände ich sehr hilfreich. Grüße, Yellowcard (D.) 21:55, 22. Sep. 2015 (CEST)
Im Testmodul habe ich mal eine Variante implementiert. Wenn die Formatanweisung eine höhere Präzision hat als das Datum selbst, werden die entsprechenden Anweisungen herauslöscht. Mögliche Trennzeichen bleiben aber enthalten und führen zu unerwünschten Darstellungen. --Pasleim (Diskussion) 23:34, 22. Sep. 2015 (CEST)
Danke, funktioniert! -- hgzh 19:59, 23. Sep. 2015 (CEST)
@Pasleim: Könntest Du das in das Hauptmodul übernehmen? Yellowcard (D.) 03:08, 29. Sep. 2015 (CEST)
Möchte ich lieber nicht, solange wir nicht das Problem mit dem unerwarteten Ergebnis (s. unten) gelöst haben. --Pasleim (Diskussion) 09:11, 29. Sep. 2015 (CEST)
OK, wobei das Problem ja nur aufzutreten scheint, wenn ganze Jahreszahlen angegeben sind. Bei einem konkreten Datum funktioniert die Parserfunktion offenbar wie erwartet. Kann man die Diskussion dazu irgendwo nachlesen oder hast Du die Entwickler privat angesprochen? Grüße, Yellowcard (D.) 11:28, 29. Sep. 2015 (CEST)
Datumsangaben können nun selber formatiert werden über |parameter=time:format. Die Format-Codes werden auf Hilfe:Vorlagenprogrammierung#Funktion time erklärt. Sollte ein Format gewählt werden das eine höhere Genauigkeit erfordert als das Datum in Wikidata, wird die Standardformatierung verwendet. --Pasleim (Diskussion) 13:11, 2. Okt. 2015 (CEST)

Einzelne Werte durch andere vordefinierte Werte ersetzen

Gibt es eine Möglichkeit einen bestimmten Wert der ausgegeben wird durch einen anderen ersetzen zu lassen? Meine Frage zielt auf die Situation ab, dass es Werte bzw. verlinkte Artikel gibt die in Deutschland falsch sind bzw. nicht existieren. Bsp.: Im Bereich Computerspiele kennt enwiki (und Wikidata hat das übernommen) Genres die dewiki nicht hat. Diese in D. nicht existierenden Genres lassen sich aber immer genau einem in D. existierenden Genre zuordnen. Alles was man dafür tun muss ist diese Werte herauszufiltern und zu ersetzen. Bei Einzeleinträgen mag das per :if lösbar sein, aber so weit ich weiß nicht bei einer Liste. P.S.: Weiß jemand ob Wikidata anstrebt länderspezifische Werte irgendwann zu ermöglichen? --Toru10 (DiskussionWPCS) 19:44, 24. Sep. 2015 (CEST)

Ich weiß nicht, ob ich dich richtig verstanden habe, aber wenn ja, könnte die Parserfuktion #switch helfen. --MGChecker – (📞| 📝| Bewertung) 21:12, 24. Sep. 2015 (CEST)
Daran hatte ich auch gedacht. Das Problem ist nur, dass switch nur einen Einzelwert vergleicht. Bei einer Liste hat das bei meinen bisherigen Tests nicht funktioniert. --Toru10 (DiskussionWPCS) 10:30, 25. Sep. 2015 (CEST)
Was willst du denn genau machen? Vielleicht könntest du einfach eine Verschachtelung mit {{Str replace}} bauen. –Queryzo ?! 10:38, 25. Sep. 2015 (CEST)
Interessanter Ansatz, hat aber zwei Probleme. Man kann offenbar in Str replace kein invoke einbauen (z.B.:{{Str replace|{{#invoke:Wikidata|getValue|P437|{{{Medien|}}} }}|DVD-R DL|DVD}} geht nicht) und Str replace ersetzt immer nur eine vordefinierte Buchstabenkombination. Ich habe aber den Fall, dass mehrere voneinander unabhängige Begriffe gefunden und ersetzt werden müssen (z.B. DVD-R DL durch DVD und BluRay-Disc durch BluRay). Letzteres würde sich zwar durch mehrere Str replace-Abfragen erledigen lassen, aber das könnten ganz schön viele Abfragen werden. --Toru10 (DiskussionWPCS) 13:03, 25. Sep. 2015 (CEST)
Dass Str replace mit #invoke nicht funktioniert, kann so nicht stimmen, da ich es selbst verwende, siehe z.B. Everest (Text) (siehe Quelltext). Mehrere verschachtelte Aufrufe mit Str replace tun ja nicht weh, wie gesagt, hängt davon ab, was du genau vorhast. –Queryzo ?! 13:12, 25. Sep. 2015 (CEST)
Merkwürdig, jetzt funktioniert es. Auch OK. Vielen Dank! Das mit den verschachtelten Abfragen mittels Str replace hat auch funktioniert. --Toru10 (DiskussionWPCS) 19:25, 25. Sep. 2015 (CEST)

Unerwartetes Ergebnis

Hallo, ich möchte mir von Evan Bush (Q5415333) die Start- und Endzeitpunkte der Vereinsstationen angeben lassen. Sortiert werden soll aufsteigend nach Startzeitpunkt. Dazu verwende ich folgende Anweisung:

{{#invoke:Text|zip|{{#invoke:Wikidata/Test|claim|id=Q5415333|P54|qualifier=P580|sort=P580|parameter=time:Y|list=;}}|{{#invoke:Wikidata/Test|claim|id=Q5415333|P54|qualifier=P582|sort=P580|parameter=time:Y|list=;}}|sep=;|isep=–|osep=<br />}}

Allerdings führt das zu unerwarteten Ergebnissen, denn die Jahreszahlen, die ausgegeben werden, entsprechen nicht den hinterlegten Jahreszahlen:

2006–2006
2007–2007
2008–2008
2009–2009
2010–2010
2011–2011
2012–

Der erste ausgegebene Wert für Start- und Zielzeitpunkt ist das Jahr 2005, tatsächlich enthält der WikiData-Eintrag aber erst einen Startzeitpunkt im Jahr 2006 bei der ersten Station. Dafür fehlt die Station "2011–2011". Es scheint also, als seien bis auf den letzten Eintrag alle Stationen ein Jahr vorgerückt. Woran kann das liegen bzw. was mache ich falsch? Yellowcard (D.) 22:56, 24. Sep. 2015 (CEST)

Die #time-Parserfunktion scheint Schwierigkeiten zu haben ein Datum im Format "YYYY-00-00" zu interpretieren. Ich werde mal nachfragen, ob die Programmierer der Parserfunktion das beheben können. --Pasleim (Diskussion) 15:54, 26. Sep. 2015 (CEST)
@Mps: Das Problem betrifft auch die formatDate-Funktion im Hauptmodul falls die Präzision in Wikidata auf 9 (Jahr) oder 10 (Monat) gesetzt ist. Da wohl eine Lösung in der MediaWiki Software nicht so schnell erfolgen wird, müssen wir wohl selber das Problem lösen. Eine Möglichkeit wäre -00-00 durch -01-01 zu ersetzen bevor die time-Parserfunktion aufgerufen wird oder wir schreiben unsere eigene Parserfunktion für das Wikidata-Format. --Pasleim (Diskussion) 11:46, 29. Sep. 2015 (CEST)
Man muss zudem auch Tag=0 abfangen, da {{#time:j. F Y|2009-12-00}} = 30. November 2009. Ersetzen scheint mir am einfachsten, z.B. mit string.gsub(datum, "-00%f[%D]", "-01"). --Mps、かみまみたDisk. 12:46, 29. Sep. 2015 (CEST)
Die Ersetzung von 00 in 01 wäre auch mein Vorschlag gewesen – allerdings ohne Ahnung, wie das in Lua umgesetzt werden kann. Yellowcard (D.) 13:14, 29. Sep. 2015 (CEST)
Prinzipiell ginge auch string.gsub(datum, "-00", "-01") – das %f[%D] prüft noch dass nach den Nullen keine weitere Zahlen kommen, falls beispielsweise eine negatives Jahr mit führenden Nullen übergeben wird. --Mps、かみまみたDisk. 13:40, 29. Sep. 2015 (CEST)
Auf das Szenario wäre ich gar nicht gekommen. Sicher sinnvoll, die RegEx-Variante zu nehmen und damit diesen auergewöhnlichen, aber nicht unmöglichen Fall mit abzudecken. Grüße, Yellowcard (D.) 13:56, 29. Sep. 2015 (CEST)
Ok, ich habe mal die Zeile eingefügt. --Pasleim (Diskussion) 15:06, 29. Sep. 2015 (CEST)
Genial, scheint jetzt überall die korrekten Ergebnisse zurückzugeben – danke! Yellowcard (D.) 15:42, 29. Sep. 2015 (CEST)

Filter

Ich habe heute drei Filterfunktionen zum Modul hinzugefügt:

  • |hasqualifier= zeigt nur Werte an, die einen Qualifikator haben; mit |hasqualifier=Pxx werden nur Werte zurückgegeben, die den Qualifikator Pxx gesetzt haben.
  • |hassource= zeigt nur Werte an, die einen Einzelnachweis haben. |hassource=Pxx zeigt nur Werte an, wenn Pxx im Einzelnachweis vorkommt und |hassource=!Pxx gibt nur Werte zurück, die einen Einzelnachweis haben, wobei Pxx nicht als Einzelnachweis zählt.
  • |atdate= filtert Werte, die einen Endzeitpunkt-Qualifikator haben, der in der Vergangenheit liegt oder einen Startzeitpunkt-Qualifikator, der in der Zukunft liegt. Mit |atdate=YYYY-MM-DD kann dies auch für einen beliebigen Zeitpunkt überprüft werden. --Pasleim (Diskussion) 16:14, 26. Sep. 2015 (CEST)
@Pasleim: Sowohl zu dem hier als auch zu dem Abschnitt eins drüber: riesengroßen Dank! Hilft mir konkret sehr weiter. Grüße, Yellowcard (D.) 18:53, 26. Sep. 2015 (CEST)
@Pasleim: Wäre es auch möglich, eine Funktion einzuführen, die bewirkt, dass nur ein Wert zurückgegeben wird, wenn der Qualifikator PXX einen bestimmten Wert hat? Wenn ich das richtig verstanden habe, kann ich bisher nur prüfen, ob ein Qualifikator PXX gesetzt ist, aber nicht auf einen bestimmten Wert filtern – oder? Danke und Gruß, Yellowcard (D.) 19:33, 27. Sep. 2015 (CEST)
Bzw. generell: Angenommen, einer Eigenschaft sind mehrere Items zugeordnet. Kann ich den Wert eines Qualifiers eines bestimmten Items zurückgeben? Vorausgesetzt natürlich, ich kenne die ID Qxxx des zugeordneten Items innerhalb der Eigenschaft. Yellowcard (D.) 19:37, 27. Sep. 2015 (CEST)
Eine solche Filterung ist zurzeit noch nicht möglich. Was wäre eine Anwendung von einem solch spezifischen Filter? --Pasleim (Diskussion) 21:10, 28. Sep. 2015 (CEST)
Konkret ging es mir bspw. darum, strukturiert die Leistungsdaten von Fußballspielern für jede ihrer Vereinsstationen zurückzugeben. Einem Spieler sind dabei mehrere Vereine, bei denen er gespielt hat, als Items zugeordnet. Bei jedem sind die Leistungsdaten als Qualifier hinterlegt. Beispiel: Evan Bush (Q5415333), dabei Mitglied von Sportmannschaft oder -verein (P54). Wie könnte ich jetzt herausfinden, wie viele Spiele (Anzahl der gespielten Partien (P1350)) Bush für Chicago Fire Premier gemacht hat? Und aus Interesse: Warum ist das derzeit nicht möglich? Es müssten doch eigentlich alle notwendigen Informationen vorliegen, oder? Danke für die große Hilfe! Yellowcard (D.) 21:16, 28. Sep. 2015 (CEST)
Technisch ist das sicher möglich, aber wir müssen einfach zuerst die entsprechende Funktion hier im Modul schreiben. --Pasleim (Diskussion) 21:30, 28. Sep. 2015 (CEST)
Ja, das stimmt. "Einfach" ist gut, ich sehe hier derzeit nur Mps und Dich, die dazu in der Lage sind ... ;) Grüße, Yellowcard (D.) 22:13, 28. Sep. 2015 (CEST)
|atdate= scheint ggf. Schwierigkeiten zu haben, zumindest ergibt {{#invoke:Wikidata|claim|id=Q5415333|P54|list=;|atdate=}}:
Akron Zips men's soccer
Oder habe ich etwas in der Funktion nicht verstanden? Yellowcard (D.) 19:43, 27. Sep. 2015 (CEST)
Ich habe den Code mal korrigiert, so dass es jetzt funktionieren sollte. --Mps、かみまみたDisk. 23:08, 27. Sep. 2015 (CEST)
Wunderbar, dankeschön! :) Yellowcard (D.) 23:10, 27. Sep. 2015 (CEST)

@Pasleim: Ich habe die Funktion hasqualifier im Testmodul etwas erweitert (Diff), sodass jetzt auch dort die Negation über ein ! funktionieren sollte. Wenn das aus Deiner Sicht (und aus der aller anderen Mitlesenden natürlich) passt, würde ich das ins Hauptmodul übernehmen? Die weiter oben angegebene Filterung nach konkreten Werten steht bei mir nocha uf der Agenda, wenn mir niemand zuvorkommt. Grüße, Yellowcard (D.) 12:46, 13. Okt. 2015 (CEST)

Habe es noch weiter getestet, scheint zu funktionieren wie erwartet. Da ich es gern schon weiternutzen würde, habe ich es ins Hauptmodul übernommen. Bei Einwänden bitte unbedingt melden. Grüße, Yellowcard (D.) 13:20, 13. Okt. 2015 (CEST)

Qualifikator in Sprache

Bei einer Person möchte ich das Demonym seiner Staatsangehörigkeit in deutscher Sprache herausfinden. Dazu ermittle ich zunächst seine Staatsangehörigkeit und lese im zugehörigen Item des Staats die Eigenschaft des Demonyms aus. Problem: Der Wert erscheint bei mir grundsätzlich in Englisch, ich hätte ihn gern in Deutsch.

Beispiel für Andrés Romero (Q4274903), der Argentinier ist: {{#invoke:Wikidata|claim|P1549|id=Q{{#invoke:Wikidata|claim|P27|id=Q4274903|parameter=numeric-id}}}}

Ergebnis: Argentinian (dynamisch: Argentinian), ich hätte aber gern Argentinier, was ebenfalls im Item vorhanden ist (mit deutscher Sprachauszeichnung). Wie bekomme ich das hin? Mal wieder danke, Yellowcard (D.) 01:35, 29. Sep. 2015 (CEST)

{{#invoke:Wikidata|claim|P1549|id=Q414}} gibt wie üblich den ersten Wert zurück. Mit {{#invoke:Wikidata|claim|P1549|id=Q414|list=,}} werden alle Werte angezeigt. Wir müssen uns entscheiden, ob wir standardmässig nur den deutschen Text anzeigen wollen oder ob wir einen zusätzlichen Parameter |language= einführen wollen mit dem man je nach Anwendungsfall die Sprache definieren kann. --Pasleim (Diskussion) 13:58, 29. Sep. 2015 (CEST)
Geht das nicht beides in Kombination? Ein Vorschlag von mir:
  • Standardmäßig wird der deutsche Text angezeigt
    • Ist kein deutscher Text vorhanden, wird der erste Eintrag angezeigt (also Status Quo)
  • Mit dem Parameter language=Sprachcode kann obiges Verhalten überschrieben werden, es wird also der Text in der angegebenen Sprache zurückgegeben oder nichts, wenn kein Text in der angegebenen Sprache vorhanden ist.
Das sollte alle Anwendungsfälle abdecken, die mir einfallen. Was ich nicht einschätzen kann, ist der Aufwand der Implementierung. Grüße, Yellowcard (D.) 14:17, 29. Sep. 2015 (CEST)

@Pasleim: Für Snaks vom Typ monolingualtext ist die Sprachauswahl ab sofort möglich, den Rückgabewert über den neuen Parameter |language= zu beeinflussen:

{{#invoke:Wikidata/Test|claim|P1549|id=Q414|parameter=text|language=de}} = Argentinier
{{#invoke:Wikidata/Test|claim|P1549|id=Q414|parameter=text}} = Argentinian

Am Standardfall habe ich also zunächst nichts geändert, das müsste man zuvor erst einmal diskutieren. Falls Du die Zeit findest, würde ich ich freuen, wenn Du mal über den Code schauen könntest, ob der sauber und sinnvoll erscheint. Falls ja, kann er IMO ins Hauptmodul. Grüße, Yellowcard (D.) 23:26, 7. Okt. 2015 (CEST)

Leere Qualifier bei Listenausgabe

Ich habe im Testmodul eine kleine Änderung vorgenommen. Dadurch wird bei der Listenausgabe durch den zusätzlichen Parameter list_includeempty=ja ermöglicht, dass im Fall von leeren Qualifiern trotzdem ein Trennzeichen zurückgegeben wird. Das wird benötigt, wenn man mehrere Listen abfragt und die einzelnen Elemente zusammengehören. Es scheint wie gewollt zu funktionieren. Könnte jemand mal drüberschauen, ob das so passt, die Benennung des Parameters ok ist und ob es in das Hauptmodul kann? Danke, Yellowcard (D.) 02:55, 2. Okt. 2015 (CEST)

Habe die Änderung übernommen, allerdings den Parameter auf |includeempty= gekürzt. Unterstriche gehen gerne vergessen. --Pasleim (Diskussion) 13:04, 2. Okt. 2015 (CEST)

Hinweis wenn kein Qualifier hinterlegt ist

Mit zunehmend umfangreicherer Einbindung von Wikidata-Abfragen in eine Infobox stelle ich das Problem fest, dass man leichter übersieht wenn für einzelne Paramter in WD kein Wert hinterlegt wurde. Schlichtweg aufgrund der Menge an verfügbaren Paramtern. Gibt es einen Weg einem Autor nur im Bearbeitenmodus (Quelltexteditor und Wikieditor) darauf hinzuweisen, dass kein Wert auf Wikidata hinterlegt ist? Da ich nie eine Fehlermeldung erhalte mit showerrors ist mir allerdings nicht klar, was das bringt bzw. bringen soll (z.B.: {{#invoke:Wikidata|getValue|P479|{{{Bedienung|}}}|list=, |parameter=link|showerrors}}). Wenn so etwas hier nicht machbar ist, wäre das vllt. auch etwas für die technische Wunschliste. --Toru10 (DiskussionWPCS) 09:45, 5. Okt. 2015 (CEST)

Versuche es mit {{#invoke:Wikidata|getValue|P479|{{{Bedienung|}}}|list=, |parameter=link|showerrors=ja}} --Pasleim (Diskussion) 15:22, 5. Okt. 2015 (CEST)
Naja, das löst aber mein Problem nur zum Teil und produziert neue Probleme. Mich stört vor allem, dass die Fehlermeldung für das Fehlen eines Wertes auch dauerhaft nach dem Speichern angezeigt wird. Da es aber durchaus Situationen gibt in denen es (noch) keinen Wert zum hinterlegen in Wikidata gibt, würde immer dieser Fehler angezeigt werden. Mit dem Hinblick darauf, dass die Infobox eines Tages sich vollautomatisch befüllen soll, ergibt dies in Kombination mit der Menge an möglichen Einbindungen der Infobox eine unüberschaubare Situation (mit jeder Menge von Infoboxen in Wikipedia mir Fehlermeldungen).
Dazu kommt, dass ich nicht davon ausgehe, dass jeder der die Infobox mithilfe von Wikidata nutzen wird sich mit den Fehlern auseinandersetzen möchte. Jemand der nur Einzefallautor bei Wikipedia ist, wird so wohl eher wieder abgeschreckt. Das Gegenteil also was wir mit der fortschreitenden Einbindung von Wikidata erreichen möchen. --Toru10 (DiskussionWPCS) 12:02, 6. Okt. 2015 (CEST)
„Gibt es einen Weg einem Autor nur im Bearbeitenmodus (Quelltexteditor und Wikieditor) darauf hinzuweisen, dass kein Wert auf Wikidata hinterlegt ist?“ – im Quelltexteditor geht das nicht, da der Quelltext ja noch gar nicht ausgewertet wird, und mit Wikieditor ist wohl wikEd gemeint, damit wird es auch nicht gehen. Das liegt auch nicht an dem Modul, sondern sind halt generell die technischen Grenzen. Möglicherweise geht das mit dem Visual Editor, wenn Lua herausfinden kann, ob man sich derzeit im Bearbeiten- / Vorschaumodus befindet. Das weiß ich nicht; das müsstest Du mal in der Lua-Werkstatt anfragen. Grüße, Yellowcard (D.) 13:04, 8. Okt. 2015 (CEST)
Ich meinte natürlich nur im Vorschaumodus beim Quelltexteditor/wikiEd. Alles andere kann ja nicht gehen. Habe mich da wohl etwas undeutlich ausgedrückt. Und ich meinte natürlich zusätzlich auch den Visual Editor, in der Situation wie du sie beschrieben hast. :) --Toru10 (DiskussionWPCS) 13:15, 8. Okt. 2015 (CEST)

Ungleichmäßige Listen zusammenführen

Ich kenne die Lösung die weiter oben besprochen wurde mittels der Funktion zip im Modul:Text zwei oder mehr Listen zusammenzuführen. Jetzt stehe ich allerdings vor dem Problem, dass ich zwei bzw. Listen zusammenführen möchte, die in der Anzahl der Werte ungleichmäßig sind. Genauer gesagt, gilt z.B. für den ersten Wert aus der ersten Liste nicht ein Wert aus der zweiten Liste sondern zwei Werte aus der zweiten Liste. Anschauliches Beispiel: Liste 1: a,b,c,d und Liste 2: 1,2,3,4,5. Aufgrund der in Wikidata gesetzten Beziehungen von Parameter und Qualifier gilt: a-1, b-2-3, c, d-4,5. Genauso soll das auch ausgegeben werden.
So wie es mal aussehen soll sieht man konkret z.B. bei Crysis Infobox-Parameter Spielengine (Daten die ausgegeben werden müssen: d:Q237484) oder The Legend of Zelda: Ocarina of Time Infobox-Parameter Erstveröffentlichung (d:Q213911). Hat jemand eine Idee wie man so etwas hinbekommt? --Toru10 (DiskussionWPCS) 17:34, 6. Okt. 2015 (CEST)

@Toru10: Bei The Legend of Zelda: Ocarina of Time (Q213911) müsste das mit der Funktion listToFormat aus dem Modul:Text funktionieren. Beim Modul:Wikidata musst Du dann den Parameter includeempty=ja setzen. Beides habe ich in den letzten Tagen in die Module eingeführt und sollte funktionieren. Die Funktion listToFormat habe ich noch nicht dokumentiert, das mache ich heute. Falls Du einen Beispielquelltext brauchst, gib ruhig Bescheid. Ob das auch mit mehreren Items innerhalb eines Qualifiers wie bei Crysis (Q237484) funktioniert, müsstest Du mal ausprobieren. Das wird wahrscheinlich schwierig, weil die Anzahl damit nicht mehr passt. Für solche recht speziellen Fälle müsste man sich dann etwas überlegen. Grüße, Yellowcard (D.) 10:33, 7. Okt. 2015 (CEST)

Ich kenne deine Funktion im Modul:Text. Das könnte gut funktionieren was die momentan Situation bei The Legend of Zelda betrifft. Allerdings ist da wirklich nur der Zufall da, dass es immer zwei Qualifier pro Wert gibt. Das was deine Funktion mit den Listen macht habe ich aber schon zumindest bei Spielengine bei Crysis andersweitig umgesetzt. Wahrscheinlich ist deine Funktion eine schönere Lösung, aber das ist glaube ich nicht ganz mein Problem. Wie du schon richtig siehst, ist die variable Anzahl ein Problem. Das ist übrigens auch kein Einzelfall-Problem sondern ein sehr häufiges Problem. Meine bisherige Lösung sieht so aus:

{{#invoke:Text|zip|{{#invoke:Wikidata|getValue|P408|{{{Engine|}}}|list=,|parameter=link}}|{{#invoke:Wikidata|getValue|P408|{{{Engine|}}}|list=,|qualifier=P348}}|{{#if:{{#invoke:Wikidata|getValue|P408|{{{Engine|}}}|list=) ,(|qualifier=P400}}|({{#invoke:Wikidata|getValue|P408|{{{Engine|}}}|list=) ,(|qualifier=P400}})|}}|sep=,|isep= |osep=</br>}}|}}

Das erzeugt die Ausgabe bei Crysis:

CryEngine 2 (Microsoft Windows)
CryEngine 3 (Xbox 360)

Aussehen müsste es aber:

CryEngine 2 (Microsoft Windows)
CryEngine 3 (Xbox 360, Playstation 3)

(Zum selber nachprüfen: {{Benutzer:Toru10/Infoboxentwurf |Engine = ABFRAGE_WIKIDATA }})

Den Grund für das Fehlen von Playstation 3 ist mir natürlich bewusst. Ich bräuchte eine Art Schleife, die erst (Xbox 360, Playstation 3) ausgibt, bevor die Abfrage wieder weitergeht in das Modul:Text|zip. --Toru10 (DiskussionWPCS) 11:26, 7. Okt. 2015 (CEST)

Aus meiner Sicht ergeben sich drei Lösungsmöglichkeiten: Eine Schleife im Vorlagencode einbauen, eine Funktion im Modul:Wikidata oder eine Schleifenfunktion im Modul:Text. Was davon die bessere bzw. überhaupt umsetzbare Variante ist entzieht sich aber meines Wissens und meiner Erfahrung. --Toru10 (DiskussionWPCS) 11:30, 7. Okt. 2015 (CEST)
Habe es jetzt nicht ausprobiert, aber müsste über das listToFormat des Modul:Text im Wesentlichen funktionieren. Einziges Problem, das ich spontan sehe, sind die fakultativ gesetzten Klammern (sprich: die Klammern sollen ja nicht gesetzt werden, wenn gar keine Angabe vorhanden ist). Yellowcard (D.) 11:44, 7. Okt. 2015 (CEST)
Kommando zurück, das Modul:Wikidata gibt das nicht her. Man müsste zweidimensionale Tabellen ermöglichen. Das wird nicht ganz einfach. Yellowcard (D.) 11:46, 7. Okt. 2015 (CEST)
Wozu sollte man zweidimensionale Tabellen ermöglichen müssen? Es sei denn, Wikidata schickt keine Informationen über Eigenschaften-Qualifier-Beziehungen mit, sodass man bei der Abfrage nicht weiß, welcher Qualifier zu welcher Eigenschaft gehört. Ist dem so? --Toru10 (DiskussionWPCS) 10:00, 8. Okt. 2015 (CEST)
Nein, dem ist nicht so, aber mit den momentanen Gegebenheiten des Moduls ist das nicht auslesbar. Und das Ganze müsste ja als String zurückgegeben werden, damit Du es anschließend ohne weitere Konstrukte wie Schleifen auswerten kannst. Da bleiben nur ("zweidimensionale") Listen, also bspw. Listen mit zwei verschiedenen Trennzeichen zur Unterscheidung. Yellowcard (D.) 12:01, 8. Okt. 2015 (CEST)
OK, also im Prinzip müsste das Modul alle Werte eines Qualifiers von einer Eigenschaft komplett ausgeben. Ansonsten läuft das Modul:Text einen Schritt weiter. Wie kompliziert wäre das in der Umsetzung? Z.B. mittels Parameter? Ich denke auf das Problem werden wir ja auch in Zukunft noch öfter stoßen. Insbesondere wenn immer mehr Infoboxen auf Wikidata-Einbindung umsteigen. Was mir als Idee einfällt ist, sollte das in diesem Modul nicht gehen, wäre ein Idee ein zweites Modul zu bauen, das so lange das Modul:Wikidata aufruft bis keine Qualifier mit der gleichen Beziehung gefunden werden. Dazu müsste aber dieses Modul die Beziehung wahrscheinlich mit ausgeben, sofern es das bisher noch nicht tut. --Toru10 (DiskussionWPCS) 12:44, 8. Okt. 2015 (CEST)
„OK, also im Prinzip müsste das Modul alle Werte eines Qualifiers von einer Eigenschaft komplett ausgeben.“ – das Problem ist also, dass {{#invoke:Wikidata|claim|P408|id=Q237484|qualifier=P400|list=;}} bei jedem Qualifier nur einen Wert zurückliefert, richtig? Damit gibt es keinen Zugriff auf den Qualifier Playstation 3. Habe ich das richtig verstanden? Das dürfte eigentlich nicht so schwer sein, das zu erweitern, behaupte ich ohne weiter drüber nachgedacht zu haben. Yellowcard (D.) 12:53, 8. Okt. 2015 (CEST)

Ohne den genauen Ablauf im Modul mir angeschaut zu haben, stelle ich mir die Situation eher so vor, dass das Modul schon Werte auspuckt bevor es fertig durchgelaufen ist. Ansonsten könnte das zusammenführen mittels Modul:Text auch nicht funktionieren. Das Modul:Text kennt auch keinerlei Zusammenhänge. Zu sehen ist beides auch wenn man bei Crysis in Wikidata an zweiter Stelle der Spielengines eine leere Spielengine ohne Qualifier hinterlegt.

Hinterlegt ist z.B. :

CryEngine 2 (Microsoft Windows)
Havok
CryEngine 3 (Xbox 360)

Das Modul:Text erstellt aber:

CryEngine 2 (Microsoft Windows)
Havok 3 (Xbox 360)
CryEngine

Da das Modul:Text 3 und Xbox 360 dem Havok zuweist zeigt, dass es Zusammenhänge nicht kennt, diese aber dringend nötig sind. Das kann übrigens auch zum Problem bei z.B. den erstellten Navigationsleisten (Vorlage:Navigationsleiste Kader von Montreal Impact) werden. Dass das Modul:Text bei Spezial:Permanentlink/146393257 auch die passenden Nummern anzeigt, klappt nur, weil auf Wikidata für jeden Spieler ein Wert gesetzt wurde. Fügt aber ein Nutzer ein Spieler ohne Nummer hinzu, dann zerschießt es die komplette Navigationsleiste. Bei immer mehr werdenden Navigationsleisten, die auf solche Beziehungen setzen kann das ohne Beziehungen ein Problem werden. Es sollten also irgendwie Beziehungen bei der Ausgabe von Modul:Wikidata eingebaut werden.

Dass Playstation 3 komplett verschluckt wird, zeigt, dass sogar nur ein Wert eines Qualifiers abgefragt wird. Das sollte man mMn auch im Modul ändern. --Toru10 (DiskussionWPCS) 14:36, 8. Okt. 2015 (CEST)

„dass das Modul schon Werte auspuckt bevor es fertig durchgelaufen ist“ – das kann meines Wissens nicht funktionieren, da das Modul nur einen Rückgabewert liefern, aber nicht zur Laufzeit Text zurückgeben kann. Gruß, Yellowcard (D.) 15:02, 8. Okt. 2015 (CEST)
Und ergänzend, zu Deinem Problem: Ohne Quelltext ist das schwierig zu analysieren. Welche Funktion des Modul:Text nutzt Du? Setzt Du den Parameter |includeempty=ja beim Aufruf des Modul:Wikidata? Yellowcard (D.) 15:04, 8. Okt. 2015 (CEST)
Und eine letzte Ergänzung: Bzgl. der alten Version der Navigationsleiste: Genau deswegen habe ich ja die Funktionalität mit dem o.g. Parameter kürzlich erst programmiert und hinzugefügt, vgl. diese Diskussionsseite. Das Modul ist noch nicht fertig, es kommen stetig neue Probleme auf und werden zeitig gelöst, daher hilft uns der Zustand von vor einigen Tagen nicht weiter. Grüße, Yellowcard (D.) 15:07, 8. Okt. 2015 (CEST)
Achso, dafür soll der Parameter |includeempty=ja gut sein. hatte mich schon gewundert, was der bringen soll. :D Das andere ist ein Missverständnis. Mit dem Spezial:Permalink wollte ich nur auf die Situation hinweisen, wenn auch Nummern eingebunden werden. Also zwei Listen zusammengeführt werden. Dass das Modul nicht fertig ist mir auch selber klar. ;) „«dass das Modul schon Werte auspuckt bevor es fertig durchgelaufen ist» – das kann meines Wissens nicht funktionieren, da das Modul nur einen Rückgabewert liefern, aber nicht zur Laufzeit Text zurückgeben kann.“ Ich hatte auch nicht an eine Ausgabe von Werten in Laufzeit gedacht, sondern dass das Modul alle gefundenen Werte sammelt und formatiert und dann erst ausgibt. --Toru10 (DiskussionWPCS) 15:14, 8. Okt. 2015 (CEST)
Letzteres natürlich nur, wenn zwei Werte/Qualifier die gleichen Beziehungen besitzen. Sonst funktioniert ja Modul:Text|zip nicht mehr. --Toru10 (DiskussionWPCS) 15:17, 8. Okt. 2015 (CEST)
Genau, der Parameter ist dafür da, verschiedene Listen erzeugen zu können (also eine Liste für die Ausgabe der Items und weitere Listen für Ausgabe der Qualfier) und allein über die Position der Elemente in der Liste diese als zusammengehörige Tupel wieder zusammenzuführen. Das funktioniert nur dann, wenn jede Liste dieselbe Anzahl an Elementen enthält – logisch. Der Parameter includeempty sorgt dafür, dass ein leeres Element erzeugt wird, wenn ein Qualifier nicht gesetzt ist. Bei mehr als einem Wert pro Qualifier funktioniert das ganze System nicht mehr. Daher bräuchte man, wie schon von mir angemerkt, zweidimensionale Listen, zum Beispiel durch ein unterschiedliches Trennzeichen. Yellowcard (D.) 16:31, 8. Okt. 2015 (CEST)
Aber machbar wäre es schon innerhalb dieses Moduls eine temporäre zweidimensionale Liste/Tabelle für die Ausgabe zu erzeugen? --Toru10 (DiskussionWPCS) 16:41, 8. Okt. 2015 (CEST)
Klar. Innerhalb des Moduls werden an sehr vielen Stellen Lua-Tabellen verwendet. Ich könnte auch mal schauen, ob ich etwas für Deine Bedürfnisse umsetzen könnte, dazu müsstest Du aber mal genau formulieren, was Du benötigst und wie Du Dir die Ausgabe vorstellst. Ich habe das noch nicht ganz verstanden. In das Modul kann das natürlich nur aufgenommen werden, wenn es allgemein genug gehalten wird, dass es auch für andere Anwendungszwecke relevant sein könnte. Yellowcard (D.) 16:51, 8. Okt. 2015 (CEST)
Gute Frage, wie man das am besten definiert. Um es allgemein zu halten denke ich: Es sollte ermöglicht werden, dass man mehr als ein Qualifier, der zu einem gesetzen Wert/Eigenschaft gehört, so ausgeben kann, dass die zusammengehörenden Qualifier (In der Anzahl variabel bis maximal ???) zusammen ausgegeben werden und nicht nur einer davon, damit sie mittels Modul:Text|zip zusammengefügt werden können. Dabei muss es noch möglich sein, dass weitere Qualifier die zu dem Wert/Eigenschaft gehören, an richtiger Stelle mittels Modul:Text|zip angehängt werden können. Letztere müssen aber in der Anzahl nicht gleich der Anzahl erstgenannter Qualifier sein. Also so, wie d:Crysis unter Engine die Daten auch momentan zu sehen sind. Eine andere Erklärung fällt mir nicht ein. Aber vllt. haben hier ja auch noch andere eine Idee, wie man die Funktion vielseitig nutzbar machen kann? --Toru10 (DiskussionWPCS) 20:15, 9. Okt. 2015 (CEST)
Das hört sich so weit ja durchaus sinnvoll an. Aber wie stellst Du Dir die Ausgabe vor? Es kann ja nur einmal eine einzige Zeichenkette ausgegeben werden. Eine Liste mit zwei verschiedenen Trennzeichen? Vielleicht kannst Du mal an dem Crysis-Item ein Beispiel festmachen? Grüße, Yellowcard (D.) 20:42, 9. Okt. 2015 (CEST)
Da ich nicht weiß, was es für Möglichkeiten es gibt, kann ich nicht sagen, was die beste Art der Ausgabe wäre. Was gibt es denn vor Möglichkeite, um daran mal die Vor- und Nachteile abwägen zu können. --Toru10 (DiskussionWPCS) 19:02, 14. Okt. 2015 (CEST)
Es kann im Prinzip jede Art von Zeichenkette zurückgegeben werden, aber eben nur genau eine. Diese kann Trennzeichen oder was auch immer enthalten. Grüße, Yellowcard (D.) 22:25, 14. Okt. 2015 (CEST)

Ränge

Werden die Ränge von Statements auf Wikidata bei der Abfrage auf irgendeine Art und Weise berücksichtigt? (Zum Beispiel, dass missibiiligte Statements ignoriert werden?) Egal, ob ja oder nein, meiner Meinung nach sollte auf jeden Fall ein Parameter hinzukommen, mit dem man auswählen kann, ob nur die bevorzugte, die bevorzugten und normalen, oder alle Aussagen bezogen werden sollen. Spricht irgendetwas dagegen? --MGChecker – (📞| 📝| Bewertung) 15:12, 14. Okt. 2015 (CEST)

Es werden nur normale Ränge zurückgegeben, oder falls höhere Ränge vorhanden sind, nur diese. Ein weiterer Parameter wäre nicht schlecht, aber davor sehe ich noch die Wichtigkeit, die genaue Bedeutung wikidataseitig zu definieren. Yellowcard (D.) 22:26, 14. Okt. 2015 (CEST)
d:Help:Ranking. Was auch immer man davon halten mag, so siehts momentan aus. --MGChecker – (📞| 📝| Bewertung) 01:58, 19. Okt. 2015 (CEST)
Okay. Ja, ein weiterer Parameter, um die Ausgabe abhängig von den Rängen steuern zu können, wäre somit sicherlich sinnvoll. Grüße, Yellowcard (D.) 10:15, 19. Okt. 2015 (CEST)

Umgang mit Wert 0

Hallo, bislang hat das Modul nicht zwischen einem fehlenden Wert und einem Wert 0 unterschieden. Ich habe versucht, das Verhalten durch diese Änderung zu unterscheiden, das scheint auch zu funktionieren. Vielleicht gibt es noch weitere Stellen, die angepasst werden müssen. not value kann jedenfalls nicht zwischen 0 und fehlendem Wert unterscheiden. Grüße, Yellowcard (D.) 19:47, 5. Okt. 2015 (CEST)

FYI, Schweden

Was mich daran interessiert, ist das Auslösen einer Wartungskategorie. Bei den ganzen Wikidata-Vorlagen hierzuwiki, die nach dem Schema verfahren "Daten werden von Wikidata bezogen, wenn keine lokale Angabe vorhanden ist", da hätte ich gerne eine Kategorie der wikidata-beziehenden Artikel. Soll heißen: In welchen dewiki-Artikeln wird live wikidata eingebunden? Kategorie? Hat dewiki über 150.000 Wikidata-Einbindungen (siehe Benutzer:Mabschaaf/WD-Nutzung_in_deWP) oder nur ein paar hundert? Benutzer_Diskussion:Mabschaaf/WD-Nutzung_in_deWP#insource Suchen? --Atlasowa (Diskussion) 23:16, 18. Dez. 2015 (CET)