Wikifunctions:Status-Updates/2024-04-11

This page is a translated version of the page Wikifunctions:Status updates/2024-04-11 and the translation is 100% complete.
Wikifunctions Status-Updates Translate

<translate> Abstract Wikipedia via mailing list</translate> <translate> Abstract Wikipedia on IRC</translate> <translate> Wikifunctions on Telegram</translate> <translate> Wikifunctions on Mastodon</translate> <translate> Wikifunctions on Twitter</translate> <translate> Wikifunctions on Facebook</translate> <translate> Wikifunctions on YouTube</translate> <translate> Wikifunctions website</translate> Translate

Eine neue API zum Aufrufen von Wikifunctions

Diese Woche freuen wir uns, die Einführung einer neuen API zum Aufrufen von Funktionen auf Wikifunctions bekannt zu geben! Die MediaWiki Action API für Wikifunctions wurde um einen öffentlichen Endpunkt zum Ausführen von Funktionen erweitert. Dadurch können externe Werkzeuge Wikifunctions aufrufen, um eine Funktion mit den angegebenen Argumenten auszuführen und das Ergebnis zurückzubekommen.

Die neue Aktion sollte hauptsächlich als Ersatz für die vorhandene interne API-Aktion wikilambda_function_call dienen. Wenn es derzeit Werkzeuge gibt, die die interne Aktion verwenden, bitten wir darum, zur öffentlichen Aktion zu wechseln, da diese stabiler, zuverlässiger und leistungsfähiger ist. Wir planen, die interne API zügig weiterzuentwickeln, um das Front-End besser zu unterstützen, ohne solche Änderungen anzukündigen oder Stabilitätsgarantien zu bieten. Änderungen an der externen API hingegen folgen den Action-API-Richtlinien von MediaWiki. Wir haben die neue API auch im API-Portal in der Wikifunctions API-Referenz dokumentiert.

Wenn du bei der Umstellung der API Unterstützung benötigst, helfen wir dir gerne.

Wie bei allem anderen bei Wikifunctions in diesem frühen Stadium bitten wir dich, die API behutsam und mit Bedacht zu nutzen und uns zu ermöglichen, langsam zur nützlichsten Version des Projekts heranzuwachsen.

Die ersten 1000 Funktionen

 

Am Samstag, 6. April 2024, ist Wikifunctions auf 1000 Funktionen angewachsen! Herzlichen Glückwunsch an die Community! Die 1000. Funktion stellen wir weiter unten im Abschnitt über die Funktion der Woche vor, hier werfen wir einen Blick auf ein paar Statistiken rund um die Funktionen, die wir bisher haben.

Sechzig der Funktionen befinden sich im vordefinierten Bereich. Dabei handelt es sich um Prüfer für die vordefinierten Typen und eine kleine Reihe von Funktionen mit integrierten Funktionen.

Von den ersten 1000 Funktionen

  • behandeln 685 Zeichenketten
  • behandeln 223 boolesche Werte
  • behandeln 225 Zahlen
  • behandeln 173 Listen und andere Typen

Da eine Funktion zu mehreren Gruppen gehören kann, ergibt die Summe der Zahlen nicht Tausend.

Wie wir sehen, arbeiten die meisten unserer Funktionen mit Zeichenketten, was für ein System, das eine umfassende Bibliothek zur Generierung natürlicher Sprache werden soll, großartig ist. Laut der Zählung in unserem Katalog haben wir derzeit Funktionen für 20 Sprachen.

Wir sind begeistert von diesem frühen Meilenstein und freuen uns darauf, eine umfassende Funktionsbibliothek zu entwickeln, um Wikipedia, die anderen Wikimedia-Projekte und darüber hinaus zu unterstützen.

Offene Stelle als Senior Frontend Engineer für Wikifunctions

Du bist Front-End- oder Full-Stack-Entwickler und möchtest mit uns an der abstrakten Wikipedia und Wikifunctions arbeiten? Dann suchen wir dich! Sieh dir unsere Stellenbeschreibung auf Greenhouse an.

Aufzeichnung des Freiwilligentreffens ist auf Commons verfügbar

Die Aufzeichnung des letzten Freiwilligentreffens ist nun für alle auf Wikimedia Commons verfügbar. Danke an alle, die teilgenommen haben!

Letzte Änderungen an der Software

Diese Woche haben wir einige weitere Änderungen am Code für die neue, öffentliche API vorgenommen (T360359). Wir haben unseren Beispiel-API-Aufruf für die Öffentlichkeit angepasst, sodass er die kürzere, einfachere und vertrautere 'kanonische Form' anstelle der umfangreicheren 'normalen Form' verwendet.

Wir haben die neueste Version der Back-End-Dienste bereitgestellt, die hoffentlich eine Reihe kleinerer Probleme behoben und uns bei der Umsetzung weiterer Verbesserungen geholfen hat.

Wir haben die Fehlerbehandlung verbessert, wenn Python verwendet wird, um Dinge in einigen weiteren Fällen in benutzerlesbare Fehler einzupacken (T356715). Wir codieren die interne Bezeichnung für die Art der verwendeten Auswertung nicht mehr fest, sondern zeigen Z14K2 oder Ähnliches an (T358571); es gibt noch mehr Arbeit zu tun, um dies gut zu kennzeichnen. Wir haben den Erweiterungsgrad bei Argumentaufrufen reduziert, was die Ausführung in einigen Fällen beschleunigen sollte (T360172). Ebenso haben wir die Erweiterung von Codeobjekten auf kurzfristig umgestellt, sodass sie nur per Referenz zurückgegeben werden (T359872). Schließlich haben wir eine unnötige Erweiterung von Typen in Listen behoben (T324661). Zusammengenommen haben diese drei Punkte eine weitere Prüfung darüber veranlasst, wie wir Antworten vereinfachen können (Arbeit folgt).

Wir haben angepasst, wie das Front-End mit API-Fehlern umgeht (T361598) und den Code an einem zentralen Ort konsolidiert (T315432). Wir haben geändert, wie der Objektselektor 'nicht erlaubte' Werte herausfiltert, sodass er in bestimmten Fällen verwendet werden kann, die wir zuvor unbeabsichtigt verboten hatten (T336292).

Wir haben unseren Code zur Metriküberwachung so optimiert, dass er keine Nullwerte ausgibt, damit die neue Metrikplattform unserer Kollegen die Protokolle nicht ablehnt (T350497). Wir haben einige unserer Browsertests vereinfacht, damit sie einfacher sind und weniger wahrscheinlich abstürzen, wenn sich der Code ändert (T349836) und wir haben die Überprüfung der Internationalisierungsbezeichnung abstrahiert, damit Tests nicht gestört werden, wenn Bezeichnungen aktualisiert werden. Die reparierten Tests sind jetzt Teil der täglichen Suite zur Überwachung der Browsertest-Regression sowie des regulären CI.

Funktion der Woche: Padovan-Zahl

 

Seitdem Zahlen verfügbar sind, wurden viele neue Funktionen für sie erstellt. Und einige davon hinterlassen bei mir gemischte Gefühle, wie zum Beispiel die aktuelle Funktion der Woche. Ich habe sie ausgewählt, weil es die 1000. Funktion ist: Padovan-Zahl (Wikifunktion Z15075, Wikipedia-Artikel).

Die nach dem europäischen Architekten Richard Padovan benannten Padovan-Zahlen sind eine Folge von Zahlen, bei der jede Zahl die Summe der beiden vorherigen Zahlen der Folge ist. Das heißt, die zehnte Padovan-Zahl ist die Summe der achten und siebten Zahl, also der beiden Zahlen vor der neunten. Damit ist die Definition der weitaus bekannteren Fibonacci-Folge sehr ähnlich (Wikifunktion Z13835). Der Wikipedia-Artikel beschreibt die Folge ausführlicher.

Derzeit bietet die Funktion drei Tests und zwei Implementierungen. Die drei Tests definieren die nullte Padovan-Zahl als 1, die zehnte Zahl als 3 und die hundertste Zahl als 288.627.200.960. Wie im Wikipedia-Artikel erläutert, gibt es mehrere Möglichkeiten, die Sequenz zu starten, und die Tests geben an, wie die Sequenz beginnt, was hier der Sequenz A000931 der On-Line Encyclopedia of Integer Sequences entspricht, sich aber interessanterweise von dem unterscheidet, was der Wikipedia-Artikel in einer der vorhandenen Sprachversionen vorschlägt (indem er um fünf Positionen verschoben ist). Dann haben wir die Padovan-Spiralzahl, die mit der Definition von Wikipedia übereinstimmt und die Zahl entsprechend verschiebt.

n 0 1 2 3 4 5 6 7 8 9 10
Wikipedia 1 1 1 2 2 3 4 5 7 9 12
Wikifunctions 1 0 0 1 0 1 1 1 2 2 3

Die beiden vorhandenen Implementierungen sind beide in Python geschrieben und stellen zwei verschiedene Möglichkeiten zur Berechnung der Zahl dar:

Du fragst dich vielleicht: “Wozu ist diese Funktion gut?“, und meiner Meinung nach bewegen sich diese Funktionen an der Grenze der Nützlichkeit für Wikifunctions. Dies ist letztlich eine Diskussion, die wir als Community führen müssen. Ich erwarte nicht, dass diese Funktion für die Abstrakte Wikipedia furchtbar nützlich sein wird, aber ich könnte mir vorstellen, dass wir diese Funktion schließlich interaktiv in die Wikipedia-Artikel für die Padovan-Folge selbst einbetten könnten, um ein besseres Erlebnis unserer Lieblingsenzyklopädie zu ermöglichen. Ich könnte mir auch vorstellen, dass wir die Entscheidung, wie wir definieren, was zu Wikifunctions gehört und was nicht, noch ein wenig aufschieben. Oder dass wir jetzt eine Entscheidung treffen, die wir nach einer Weile, mit mehr Erfahrung, überarbeiten. Ich bin voll und ganz dafür, einem jungen Projekt wie Wikifunctions in diesen frühen Tagen etwas mehr Raum zum Atmen zu geben, etwas mehr Raum für Spaß, zum Entdecken. Und ich möchte zu diesem Zeitpunkt sicherlich noch keine Entscheidung darüber treffen, wie die Funktionen umschrieben werden sollen, die zu Wikifunctions gehören, aber es wird eine Diskussion und eine Entscheidung sein, der wir uns irgendwann stellen müssen.

Ich sehe dieser Diskussion mit Neugier und Aufgeschlossenheit entgegen.