Erweiterung:WikiLambda
WikiLambda Freigabestatus: experimentell |
|
---|---|
Einbindung | Parser-Funktion , ContentHandler |
Beschreibung | Bereitstellung einer Wikitext-Parser-Funktion für Wikimedia-Wikis, um die Auswertung von Funktionen aufzurufen, die in einem zentralen Wiki geschrieben, verwaltet und ausgewertet werden. |
Autor(en) | Wikimedia Foundation |
Kompatibilitätspolitik | Snapshots werden zusammen mit MediaWiki veröffentlicht. Der Master ist nicht abwärtskompatibel. |
Datenbankänderungen | Ja |
Lizenz | MIT-Lizenz |
Herunterladen | |
|
|
|
|
Quarterly downloads | 12 (Ranked 124th) |
Übersetze die WikiLambda-Erweiterung, wenn sie auf translatewiki.net verfügbar ist | |
Probleme | Offene Aufgaben · Einen Fehler melden |
Die Erweiterung WikiLambda ermöglicht einem Wiki das Bereitstellen von Funktionen, die von Benutzern geschrieben, verwaltet und ausgewertet werden, was zum Betrieb von wikifunctions.org genutzt wird. Sie bildet den Kern der Software von "Wikifunctions" als Teil der Arbeit für die Abstrakte Wikipedia. Das System befindet sich derzeit in der aktiven Entwicklung, wobei das Front-End in Vue.js geschrieben ist und die neue Schnittstellenbibliothek Codex verwendet. Wikifunctions wird über WikiLambda später Wikimedia-Wikis eine Wikitext-Parser-Funktion zur Verfügung stellen, um Auswertungen von Wikifunctions in ihrem lokalen Wiki vorzunehmen.
Einführung
Wikifunctions ist eine MediaWiki-Installation, auf der Funktionsinhalte, jedoch keine Ausgaben, gespeichert werden. Diese Inhalte bestehen aus Programmbeschreibungen aller verfügbaren Funktionen ("Funktionen"), tatsächlichem, vom Benutzer geschriebenem Code für diese Funktionen ("Implementierungen"), Testsuiten für diese Funktionen ("Tests") und aus an Benutzer gerichtete Dokumentation zu diesen Funktionen, neben den üblichen Inhalten zur Verwaltung der Wiki-Community wie der Projektdiskussion, Diskussionsbereichen und Richtlinienseiten.
Anfragen für Funktionsaufrufe können direkt über eine Web-Anfrage oder über MediaWiki eingehen (wahrscheinlich über eine Parser-Funktion wie {{#wikifunction:…}}
, aber das ist noch nicht entschieden). Der Funktionsorchestrierer ermittelt die Einzelheiten der Anfrage, überprüft den Cache, um festzustellen, ob der Ausgabewert kürzlich bereitgestellt wurde, und gibt diesen entweder zurück oder löst eine Auswertung aus. Dazu ruft er alle relevanten Inhalte aus dem Cluster ab, sei es veröffentlichter Inhalt der Funktion aus Wikifunctions (oder während der Bearbeitung noch unveröffentlichter Inhalt der Funktion, der "vorgeprüft" wird) oder strukturierter Inhalt aus Wikidata und Wikimedia Commons, auf den Funktionen angewendet werden können. Das vollständige Paket aus auszuführendem Code und auszuführenden Eingaben wird dann an den entsprechenden Funktionsausführer übergeben, der dann versucht, die Eingabe sicher auszuführen und die Ausgabe (oder einen Fehler) zurückgibt. Der Orchestrierer schreibt dann das erfolgreiche Ergebnis in den Cache und überträgt es an den Verbraucher.
Die WikiLambda-Erweiterung ist für die Inhaltsverwaltung des Wikifunctions-Wikis verantwortlich (wie die Erweiterung Wikibase Repository), bietet Bearbeitungsoberflächen, beschränkt Benutzer auf bestimmte Aktionen oder warnt sie vor ihnen, bietet eine Schnittstelle zum Lesen und Ausführen von Tests sowie die Integration von Inhaltsanforderungen aus allen Wikimedia-Wikis (wie die Erweiterung Wikibase Client). Vom Benutzer geschriebener Code wird nie im Kontext der Produktionsumgebung ausgeführt und hat daher nie Zugriff auf vertrauliche Inhalte, sondern wird nur in isolierten, verfügbaren Instanzen ausgeführt.
Erste Schritte
Installation
- Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens
WikiLambda
im Ordnerextensions/
ablegen.
Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
git clone --recurse-submodules https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLambda - Wird von git aus installiert, ist Composer auszuführen, um PHP-Abhängigkeiten zu installieren, indem
composer install --no-dev
im Erweiterungsverzeichnis ausgeführt wird. (Siehe task T173141 für mögliche Komplikationen.) - Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
wfLoadExtension( 'WikiLambda' );
- Führe das Aktualisierungsskript aus, welches automatisch die notwendigen Datenbanktabellen erstellt, die diese Erweiterung braucht.
- Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.
Installation der Back-End-Dienste
Wenn du die Back-End-Dienste installieren möchtest, um die WikiLambda-Software zu verwenden, musst du dies tun und sie konfigurieren. Anweisungen hierfür können sich ändern und sind daher nur im Repositorium enthalten.
Lokal testen
(TODO)
Code-Verwaltung
- Gewartet von Abstract Wikipedia team.
- Echtzeit-Chat (IRC): #wikipedia-abstract-tech connect
- Problem-Tracker: Phabricator wikilambda (Problem melden)
Siehe auch
- MediaWiki-Docker/Extension/WikiLambda
- Code-Dokumentation:
- Für PHP
- Für JS
- Codeabdeckung (PHP)
- Funktionsauswerter-Dienst
- Funktionsorchestrierer-Dienst
- geteilte Bibliothek Funktionsschemen
- Architektur der Abstrakten Wikipedia
- Spickzettel für Entwickler der Abstrakten Wikipedia
Unterseiten
- API
- Approving Implementations and Testers
- Approving Implementations and Testers/de
- Approving Implementations and Testers/en
- Approving Implementations and Testers/ru
- Approving Implementations and Testers/uk
- CLI
- Coding Conventions
- Core objects
- Creating Objects
- Development environment
- Discovery needs
- Frontend Architecture
- Granular Edit Authorization
- Jupyter kernel proposal
- Metrics
- Metrics Implementation
- User stories
- de
- en
- examples/multiply.json
- pl
- uk
- wikilambda zlanguages table
- wikilambda zobject function join table
- wikilambda zobject join table
- wikilambda zobject label conflicts table
- wikilambda zobject labels table
- wikilambda ztester results table
Diese Erweiterung wird in einem oder mehreren Wikis von Wikimedia verwendet. Das bedeutet mit hoher Wahrscheinlichkeit, dass die Erweiterung stabil ist und gut genug funktioniert, um auf solch häufig besuchten Webseiten benutzt zu werden. Suche nach dem Erweiterungs-Namen in den Wikimedia CommonSettings.php und den InitialiseSettings.php-Konfigurations-Dateien, um nachzusehen, wo es installiert ist. Eine vollständige Liste der installierten Erweiterungen in einem bestimmten Wiki wird auf Special:Version im Wiki generiert und angezeigt. |