Jump to content

Erweiterung:WikiLambda

From mediawiki.org
This page is a translated version of the page Extension:WikiLambda and the translation is 72% complete.
Outdated translations are marked like this.
MediaWiki-Erweiterungen
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
  • $wgWikiLambdaClientTargetAPI
  • $wgWikiLambdaEnableRepoMode
  • $wgWikiLambdaClientWikis
  • $wgWikiLambdaAbstractNamespaces
  • $wgWikiLambdaOrchestratorLocation
  • $wgWikiLambdaClientModeOffline
  • $wgWikiLambdaClientDefaultShowChanges
  • $wgWikiLambdaObjectCache
  • $wgWikiLambdaPersistBackendCache
  • $wgWikiLambdaEnableAbstractMode
  • $wgWikiLambdaEnableClientMode
  • wikilambda-abstract-create
  • wikilambda-abstract-edit
  • wikilambda-bypass-cache
  • wikilambda-connect-implementation
  • wikilambda-connect-tester
  • wikilambda-create
  • wikilambda-create-arbitrary-zid
  • wikilambda-create-boolean
  • wikilambda-create-converter
  • wikilambda-create-enum-value
  • wikilambda-create-function
  • wikilambda-create-function-call
  • wikilambda-create-generic-enum
  • wikilambda-create-implementation
  • wikilambda-create-language
  • wikilambda-create-predefined
  • wikilambda-create-programming
  • wikilambda-create-tester
  • wikilambda-create-type
  • wikilambda-create-unit
  • wikilambda-disconnect-implementation
  • wikilambda-disconnect-tester
  • wikilambda-edit
  • wikilambda-edit-argument-label
  • wikilambda-edit-attached-implementation
  • wikilambda-edit-attached-tester
  • wikilambda-edit-boolean
  • wikilambda-edit-function-attached-implementation
  • wikilambda-edit-function-attached-tester
  • wikilambda-edit-builtin-function
  • wikilambda-edit-connected-converter
  • wikilambda-edit-converter
  • wikilambda-edit-enum-value
  • wikilambda-edit-error-key-label
  • wikilambda-edit-function-call
  • wikilambda-edit-generic-enum-type
  • wikilambda-edit-generic-enum-item
  • wikilambda-edit-generic-enum-id
  • wikilambda-edit-implementation
  • wikilambda-edit-key-label
  • wikilambda-edit-language
  • wikilambda-edit-object-alias
  • wikilambda-edit-object-description
  • wikilambda-edit-object-label
  • wikilambda-edit-object-type
  • wikilambda-edit-predefined
  • wikilambda-edit-programming
  • wikilambda-edit-running-function
  • wikilambda-edit-running-function-definition
  • wikilambda-edit-tester
  • wikilambda-edit-type
  • wikilambda-edit-unit
  • wikilambda-edit-user-function
  • wikilambda-execute
  • wikilambda-execute-unsaved-code
  • wikifunctions-run
Licence MIT-Lizenz
Herunterladen
Ü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 $3 geschrieben ist und die neue Schnittstellenbibliothek $4 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. It forms the core of the "Wikifunctions" software stack, as part of the work towards Abstract Wikipedia. The system is currently in active development, with the front-end written in Vue.js and using the new Codex interface library. Wikifunctions via WikiLambda provides Wikimedia wikis with a wikitext parser function to make evaluations from Wikifunctions on their local wiki.

Einführung

Das aktuelle Architekturmodell auf oberster Ebene für die Funktionsweise von Wikifunctions

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 {{#function:…}}, 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. The function orchestrator determines the specifics of the request, checks the cache to see if the output value has been recently provided, and either returns that or proceeds to trigger an evaluation. To do that, it fetches all relevant content from the cluster, be that published function content (or mid-edit as-yet-unpublished function content being "previewed") from Wikifunctions, or structured content on which functions can operate from Wikidata and Wikimedia Commons. The complete bundle of code to execute and inputs on which to execute are then passed to the appropriate function executor, which then securely tries to execute the input and returns the output (or a failure error). The orchestrator then writes the successful result to the cache and transmits it to the consumer.

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 Ordner extensions/ 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 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.
  • Yes 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

Siehe auch

Unterseiten