Abstrakte Wikipedia/Komponenten
Diese page wird aus historischen Gründen behalten. Vereinbarungen auf dieser Seite können überholt sein. Wenn du die Diskussion wieder in Gang bringen möchtest, kannst du die Diskussionsseite nutzen oder eine Diskussion im Community-Forum starten. |
- Bestandteil von Abstrakte Wikipedia: Projektplan.
- Fortsetzung von Abstrakte Wikipedia: Architektur.
Wir müssen die Wikimedia-Projekte an drei Stellen erweitern:
- in den lokalen Ausgaben der Wikipedia und anderen Anwenderprojekten, die die neuen Möglichkeiten nutzen,
- in Wikidata, zur Erzeugung von Inhalt (Abstrakte Wikipedia), und
- in einem neuen Projekt, Wikifunctions, mit dem Ziel, eine Funktionenbibliothek zu schaffen.
Erweiterungen der lokalen Wikipedien
Jede lokale Wikipedia kann, je nach lokaler Community, zwischen einer der folgenden drei Optionen wählen:
- implizite Integration mit der Abstrakten Wikipedia;
- explizite Integration mit der Abstrakten Wikipedia;
- keine Integration mit der Abstrakten Wikipedia.
Die Erweiterung für lokale Wikipedien hat folgende Funktionalitäten: eine neue Spezialseite, zwei neue Funktionen und drei neue magische Wörter.
F1: Neue Spezialseite Abstract
Auf jeder lokalen Wikipedia wird eine neue Spezialseite verfügbar sein, die mit einer Q-ID oder dem lokalen Artikelnamen und einer optionalen Sprache (die standardmäßig die Sprache der lokalen Wikipedia ist) verwendet wird. Beispiel-URLs für Spezialseiten sehen wie folgt aus:
https://en.wikipedia.org/wiki/Special:Abstract/Q62
https://en.wikipedia.org/wiki/Special:Abstract/Q62/de
https://en.wikipedia.org/wiki/Special:Abstract/San_Francisco
https://en.wikipedia.org/wiki/Special:Abstract/San_Francisco/de
Wenn die Spezialseite ohne Parameter aufgerufen wird, dann wird ein Formular angezeigt, das die Auswahl einer Q-ID und einer Sprache (vorausgefüllt für die lokale Sprache) ermöglicht.
Die Spezialseite zeigt den Inhalt aus der gewählten Q-ID oder die Q-ID an, die mit dem jeweiligen Artikel verlinkt ist, der in der gewählten Sprache vom Renderer wiedergegeben wird.
F2: Explizite Artikel-Erstellung
Wenn sich die lokale Wikipedia für die Option der Integration mit der abstrakten Wikipedia durch explizite Artikelerstellung entscheidet, wird dies so gemacht.
Der Bearbeiter geht zu einem Datenobjekt auf Wikidata, das noch keinen Seitenlink in der lokalen Ziel-Wikipedia hat. Er fügt einen Seitenlink zu einer Seite hinzu, die noch nicht existiert. Auf diese Weise gibt er den Namen des Artikels an. Wenn z.B. Q62 in Englisch noch keinen Artikel und damit auch keinen Seitenlink hätte, könnte er den Seitenlink San_Francisco
für en.wikipedia hinzufügen.
In der lokalen Wikipedia wird dadurch ein virtueller Artikel im Hauptnamensraum angelegt. Dieser Artikel hat denselben Inhalt wie die oben beschriebene Spezialseite, ist aber unter der üblichen URL zu finden, d. h.
Links auf diesen Artikel, die den neu festgelegten Namen verwenden, sehen genauso aus wie alle anderen Links, d.h. ein Link auf [[San Francisco]]
zeigt auf den virtuellen Artikel, ist blau, usw. Solche Artikel werden für die Suche in der jeweiligen Wikipedia und auch für die externe Suche indiziert.
Wenn ein Benutzer auf "Artikel bearbeiten" klickt, kann er entweder zu Wikidata gehen und den abstrakten Inhalt bearbeiten (vorzugsweise), oder einen neuen Artikel in der lokalen Sprache von Grund auf neu beginnen, oder die aktuelle Übersetzung als Text aufbereiten und diesen lokal bearbeiten.
Wenn ein bestehender lokaler Artikel mit einem Seitenlink gelöscht wird, wird automatisch ein virtueller Artikel angelegt (da wir den Namen kennen und die Links beibehalten können).
Um einen virtuellen Artikel zu löschen, muss der Seitenlink in Wikidata gelöscht werden.
Alle Änderungen an der lokalen Wikipedia müssen explizit vorgenommen werden, weshalb wir dies die explizite Artikelerstellungsoption nennen. Wir gehen davon aus, dass dies die Voreinstellung für die lokalen Wikipedias sein wird, es sei denn, sie wählen entweder die implizite Artikelerstellung oder keine Integration.
Siehe auch die Diskussion zur Integration hier.
F3: Implizite Artikel-Erstellung
Wenn eine lokale Wikipedia sich für die implizite Artikelerstellung aus Wikidata entscheidet, dann wird das Ergebnis des Aufrufs der Spezialseite Abstrakt für alle Wikidata-Datenobjekte, die keinen Seitenlink zu der gegebenen Wikipedia haben, aber den Inhalt in der jeweiligen Sprache wiedergeben würden, so indiziert und in der Suche verfügbar gemacht, als ob es im Hauptnamensraum läge.
Es wird ein neues magisches Wort eingeführt, um von normalen Artikeln auf virtuelle Artikel zu verlinken, siehe F6 LINK_TO_Q
. Dieses kann unsichtbar in den visuellen Editor integriert werden.
Dies ist bei weitem der geringste Aufwand für die Community, um viele Artikel zu bekommen. Es könnte eine gute Option für kleine Communities sein.
F4: Links oder Reiter
Jeder Artikel in einer lokalen Wikipedia, der mit einem Wikidata-Datenobjekt verbunden ist, erhält einen neuen Link, entweder als Reiter am oberen Rand oder als Link in der Seitenleiste. Dieser Link zeigt den Inhalt für das verbundene Wikidata-Datenobjekt in der lokalen Sprache an. Virtuelle Artikel haben diesen Reiter nicht, aber ihre Schaltfläche Bearbeiten verlinkt direkt zum Bearbeiten des Inhalts in der Abstrakten Wikipedia.
F5: Neues magisches Wort: ABSTRACT_WIKIPEDIA
Das magische Wort wird durch den Wikitext ersetzt, der sich aus dem Rendering des Inhalts des Wikidata-Datenobjekts ergibt, das mit dieser Seite über Seitenlinks verbunden ist.
Das magische Wort kann mit zwei optionalen Parametern verwendet werden, der eine ist eine Q-ID, der andere eine Sprache. Wenn keine Q-ID angegeben wird, wird die Q-ID standardmäßig auf das Element gesetzt, mit dem diese Seite per Seitenlink verknüpft ist. Wenn keine Sprache angegeben wird, wird die Sprache standardmäßig auf die Sprache des jeweiligen Wikis gesetzt.
Aufrufbeispiele:
{{ABSTRACT_WIKIPEDIA}}
{{ABSTRACT_WIKIPEDIA:Q62}}
{{ABSTRACT_WIKIPEDIA:Q62/de}}
Wenn keine Q-ID angegeben oder voreingestellt ist, erscheint eine Fehlermeldung.
Später wird dies es ermöglichen, bestimmte Abschnitte aus dem Inhalt auszuwählen.
Wikipedien, die sich gegen eine Integration in die Abstrakte Wikipedia entscheiden, können dieses neue magische Wort trotzdem verwenden.
Beachte, dass die Einführung eines neuen magischen Worts ein vorläufiger Ansatz ist. Aufgabe 2.3 wird untersuchen, ob wir seine Funktionalitäten auch ohne dies erreichen können.
F6: Neues magisches Wort: LINK_TO_Q
Dieses magische Wort verwandelt sich in einen Link entweder auf den lokalen Artikel, der mit der angegebenen Q-ID verknüpft ist, oder, falls keiner existiert, auf die Abstrakt-Special-Seite mit der betreffenden Q-ID. Dies ermöglicht es, Artikel mit Links zu virtuellen Artikeln zu schreiben, die automatisch ersetzt werden, sobald lokale Inhalte erstellt werden.
Aufrufbeispiel:
{{LINK_TO_Q:Q62}}
ergibt
[[San Francisco]]
falls der Artikel besteht, andernfalls
[[Special:Abstract/Q62|San Francisco]]
Beachte, dass die Einführung eines neuen magischen Worts ein vorläufiger Ansatz ist. Aufgabe 2.3 wird untersuchen, ob wir seine Funktionalitäten auch ohne es erreichen können.
F7: Neues magisches Wort: LAMBDA
Dieses ruft eine in Wikidata spezifizierte Funktion zusammen mit ihren Parametern auf und gibt die Ausgabe auf der Seite aus.
Zum Beispiel wird folgender Aufruf:
{{LAMBDA:capitalize("san francisco")}}
dazu führen, dass „San Francisco‟ auf der Seite ausgegeben wird (vorausgesetzt, es gibt eine Funktion, die den lokalen Schlüssel mit der erwarteten Definition und Implementierung hat). Es wird die Sprache des lokalen Wikis verwendet, um den Aufruf zu parsen.
Denke auch an die Möglichkeit, eine bestimmte Version einer Funktion aufzurufen, um nachgelagerte Fehler zu reduzieren.
Beachte, dass die Einführung eines neuen magischen Worts ein vorläufiger Ansatz ist. Aufgabe 2.3 wird untersuchen, ob wir dessen Funktionalitäten auch ohne dies erreichen können.
Erweiterungen von Wikidata
Wir fügen dem Hauptnamensraum von Wikidata einen neuen Hilfsnamensraum hinzu. D.h. jede Artikelseite der Form www.wikidata.org/wiki/Q62
erhält auch eine zugehörige Inhaltsseite www.wikidata.org/wiki/Content:Q62
. Diese Seite enthält den abstrakten, sprachunabhängigen Inhalt und ermöglicht dessen Bearbeitung und Pflege.
Möglicherweise werden zusätzliche Spezialseiten benötigt. Dies wird im zweiten Teil des Projekts erweitert. Es erfordert die Zustimmung der Wikidata-Community, dass das Projekt für die Speicherung der abstrakten Inhalte verwendet wird, und es wird ein anderes Projekt gewählt, wenn sie nicht einverstanden ist.
F8: Neuer Namensraum: Content
Neuer Namensraum mit einer Menge komplexer interaktiver Bearbeitungsfunktionen. Bietet UX zum Erstellen und Pflegen von Inhalten sowie Funktionen zum Auswerten der Inhalte (z. B. Anzeige, wie viel davon pro Sprache angezeigt wird, usw.) Dies ist größtenteils eine Teilmenge der Funktionalität des F11 Function
Namensraums.
F9: Neuer Datentyp: Content
Ein neuer Datentyp, der einen (kurzen) Inhalt enthält. Der Hauptanwendungsfall sind die Beschreibungen in Datenobjekten und Glossen in Senses von Lexemen.
F10: Beschreibungen in Datenobjekten und Glossen in Senses indizieren und benutzen
Indizieren und überlagern der Linearisierungen von Beschreibungsfeldern für Datenobjekte und Glossen in Senses, und sicherstellen, dass für Beschreibungsfelder in Datenobjekten keine doppelten Bezeichnung / Beschreibung-Paare vorhanden sind. Ein Überschreiben dieser beiden durch manuelle Bearbeitungen ermöglichen.
Erweiterungen anderer Wikimedia-Projekte
Andere Wikimedia-Projekte werden auch die magischen Wörter F7 LAMBDA
und F5 ABSTRACT_WIKIPEDIA
erhalten, aber keine der anderen Funktionalitäten, da diese für sie nicht besonders nützlich erscheinen. Dies kann sich aufgrund von Anfragen aus den jeweiligen Communities ändern.
Erweiterungen des neuen Wikis der Funktionen
Wikifunctions wird ein neues Wikimedia-Projekt auf einer neuen Domain sein. Der Hauptnamensraum von Wikifunctions wird der ganz neue Function
Namensraum sein. Der Rest von Wikifunctions wird ein traditionelles Wikimedia-Wiki sein.
F11: Neuer Namensraum: Function
Die Speicherung von Funktionen, Typen, Schnittstellen, Werten, Tests, etc. ermöglichen. Es gibt einen einzigen Namensraum, der Konstanten (wie Typen oder Einzelwerte), Funktionsschnittstellen, Funktionsimplementierungen und damit auch Konstruktoren und Renderer enthält. Die Entitäten in diesem Namensraum werden durch Z-IDs benannt, ähnlich den Q-IDs der Wikidata-Datenobjekte, aber beginnend mit einem Z und gefolgt von einer Zahl.
Es gibt viele verschiedene Arten von Entitäten im Z-Namensraum. Dazu gehören Typen und andere Konstanten (die im Grunde nullstellige Funktionen sind), sowie klassische ein- oder mehrstellige Funktionen.
Bearbeiter können neue Funktionstypen innerhalb des Function
Namensraums erstellen und diese dann verwenden.
Funktionen können Argumente haben. Funktionen können mit ihren jweiligen Argumenten ausgeführt werden und ergeben einen Wert, dessen Typ durch die Funktionsdefinition vorgegeben ist.
Der Function
Namensraum ist komplex und wird je nach Typ der Funktion sehr unterschiedliche Sichten haben, d.h. für Oberflächen, Implementierungen, Tests, Typen, Werte usw. wird es unterschiedliche UX darauf geben, obwohl sie intern alle als Z-Objekte gespeichert sind. Letztendlich werden die verschiedenen Sichten alle durch Funktionen in Wikifunctions erzeugt.
Es wird möglich sein, Entitäten im Function
Namensraum einzufrieren und aufzutauen. Dies ist ähnlich wie eine geschützte Seite, schränkt aber nur die Bearbeitung des Wertteils der Entität ein, nicht die Bezeichnung, die Beschreibung, usw.
F12: Neue Spezialseiten und API-Module
Es werden neue Spezialseiten und API-Module zur Unterstützung des neuen Function
Namensraums erstellt. Dieser wird insbesondere eine Spezialseite und ein API-Modul enthalten, die es erlauben, Funktionen mit übergebenen Funktionsparametern auszuwerten. Daneben wird es zahlreiche Spezialseiten und APIs geben, die die Pflege der Inhalte unterstützen (z. B. Suche nach Anzahl und Typen von Parametern, Seiten mit Statistiken, wie oft bestimmte Implementierungen aufgerufen werden, Testseiten usw.). Ziel ist es, so viele wie möglich davon innerhalb von Wikifunctions zu implementieren.
Siehe auch
- Erweiterung: WikiLambda (im MediaWiki-Wiki)