Hilfe:Tabellarische Daten
Hinweis: Wenn Du diese Seite bearbeitest, stimmst Du zu, dass Dein Beitrag unter der [CC0] veröffentlicht wird. Mehr Informationen findest du auf der Public Domain Hilfeseite. |
Tabellarische Daten ermöglichen es den Benutzern, CSV-ähnliche Datentabellen zu erstellen und diese aus anderen Wikis zu verwenden, um automatische Tabellen, Listen und Diagramme zu erstellen.
Um eine neue Tabelle zu erstellen, gehe auf Wikimedia Commons und erstelle eine neue Seite im Daten-Namensraum mit der Endung .tab, wie Data:Sandbox/Name/Example.tab
.
Experimentiere ruhig, indem du Seiten mit dem Präfix Sandbox/<username>/ erstellst.
Im Moment kann der Inhalt der Seite nur im rohen JSON-Format und mit einem einfachen Tabelleneditor bearbeitet werden, ein Helferlein erlaubt jedoch den Import/Export aus/nach CSV und Excel-Dateien.
Schließlich (geschrieben am 21. November 2016) hoffen wir, dass es einen Spreadsheet-ähnlichen Editor geben wird, um die Datenbearbeitung zu vereinfachen.
Das zugrunde liegende Datenformat entspricht weitgehend dem Frictionless-Data-Standard für eine tabellarische Datenressource.
Lizenzierung
Alle Daten im Data:
-Namensraum müssen ausdrücklich die Lizenz der Daten angeben.
Die empfohlene Lizenz ist Gemeinfreiheit, lizenziert unter der Lizenz Creative Commons Zero (CC0).
Um dies anzugeben, muss jede Datenseite "license": "CC0-1.0"
enthalten, was bedeutet, dass die Daten gemäß CC0 Version 1.0 oder (auf Wunsch) jeder späteren Version genutzt werden können.
Durch die Bearbeitung der Daten stimmst du den Nutzungsbedingungen zu und erklärst deine unwiderrufliche Zustimmung zur Veröffentlichung deines Beitrags als gemeinfrei gemäß CC0.
Wenn es nicht möglich ist, die Daten unter CC0 zu veröffentlichen, werden auch die folgenden Lizenzen unterstützt:
- CC-BY:
- CC-BY-1.0: Creative Commons Attribution 1.0
- CC-BY-2.0: Creative Commons Attribution 2.0
- CC-BY-2.5: Creative Commons Attribution 2.5
- CC-BY-3.0: Creative Commons Attribution 3.0
- CC-BY-4.0: Creative Commons Attribution 4.0
- CC-BY-4.0+: Creative Commons Attribution 4.0 or later version
- CC-BY-SA
- CC-BY-SA-1.0: Creative Commons Attribution-Share Alike 1.0
- CC-BY-SA-2.0: Creative Commons Attribution-Share Alike 2.0
- CC-BY-SA-2.5: Creative Commons Attribution-Share Alike 2.5
- CC-BY-SA-3.0: Creative Commons Attribution-Share Alike 3.0
- CC-BY-SA-4.0: Creative Commons Attribution-Share Alike 4.0
- CC-BY-SA-4.0+: Creative Commons Attribution-Share Alike 4.0 or later version
- ODbL-1.0
- ODbL-1.0: ODC Open Database License v1.0
Alle Vorlagen, die Daten aus nicht-CC0-lizenzierten Datensätzen beziehen, müssen die entsprechenden Bedingungen für die Namensnennung erfüllen, daher wird dringend empfohlen, wann immer möglich CC0 zu bevorzugen.
Zu einem späteren Zeitpunkt kann die Liste der vom Data-Namensraum unterstützten Lizenzen erweitert werden.
Datentypen
Tabellarische JSON-Daten unterstützen mehrere grundlegende Werttypen.
Du kannst anstelle des Werts auch null
verwenden, um ihn als fehlend zu markieren.
number
— Ein numerischer Wert mit einem optionalen Bruchteil. Er kann die exponentielle E-Notation verwenden, darf aber keine Nicht-Zahlen wie NaN enthalten.boolean
— erlaubt nur die Wertetrue
undfalse
string
— Eine Text-Zeichenkette mit maximal 400 Zeichen. Sonderzeichen wie neue Zeilen\n
und Tabulatoren\t
sind nicht zulässig.localized
— Eine mehrsprachige Zeichenkette, dargestellt als ein Objekt mit Schlüsseln, die Sprachcodes sind (z. B. "en") und Werten, die Zeichenketten mit der oben genannten Beschränkung von maximal 400 Zeichen sind. Beispielsweise hat{"en":"string in English", "fr":"chaîne de texte en français", ...}
Zeichenketten-Werte sowohl für Englisch als auch für Französisch.
Felder der obersten Ebene
Tabellarische Daten haben mehrere erforderliche und optionale Top-Level-Elemente:
license
— erforderliches Feld, muss immer auf den Zeichenkettenwert"CC0-1.0"
gesetzt werden. Derzeit unterstützen tabellarische Daten nur die Lizenz CC0 (Gemeinfreiheit) Version 1.0 oder neuer. In Zukunft ist möglicherweise auch die Unterstützung weiterer Lizenzen möglich.schema: {"fields": [{...}, {...}, ...]}
— erforderliches Feld, muss auf ein Objekt gesetzt werden, das eine Liste enthält. Jedes Feld beschreibt eine Spalte der tabellarischen Daten. Jedes Feld muss ein Objekt mit den erforderlichen Werten"name"
und"type"
sein.name
— erforderliches Feld, ist der Name der Spalte. Der Wert muss mit einem Buchstaben oder einem Unterstrich"_"
beginnen und darf nur Buchstaben, Unterstriche oder Zahlen enthalten. Dies wird getan, damit jede Überschrift einfach aus einer Code-Umgebung wie Lua oder Vega-Graphen genutzt werden kann.type
— erforderliches Feld, muss auf einen dieser Werte gesetzt werden:"number"
,"boolean"
,"string"
oder"localized"
.title
— optionales Feld, ist eine optionale Übersetzung der Überschrift der Spalte. Wenn angegeben, muss es ein lokalisiertes Zeichenketten-Objekt sein.
data
— erforderliches Feld, muss immer auf eine Liste von Listen gesetzt werden. Jede Unter-Liste muss die gleiche Anzahl von Elementen enthalten wie die Überschriften und muss mit den Wert-Typen übereinstimmen.description
— optionales Feld, muss auf einen lokalisierten Zeichenketten-Wert gesetzt werden - ein Objekt mit mindestens einem Schlüssel-Wert, wobei der Schlüssel ein Sprachcode ist (z. B. "en") und der Wert eine beschreibende Zeichenkette.sources
— optionales Feld, muss ein Zeichenketten-Wert in Wiki-Syntax sein, der die Quelle der Daten beschreibt.
Verwendung
Es gibt zwei Möglichkeiten, diese Daten zu nutzen:
- Diese Daten können über das Aufrufen von
mw.ext.data.get("Example.tab")
durch ein Lua-Skript in jedem Wiki abgerufen werden. Die Funktion gibt Daten in fast demselben Format wie das ursprüngliche JSON zurück, außer dass alle lokalisierten Zeichenketten in reguläre Zeichenketten umgewandelt werden und das Lizenzfeld auch einen lokalisierten Lizenznamen enthält. Übergib den Sprachcode als zweiten Parameter, um die Daten in einer anderen Sprache zu erhalten. Um die Daten in der ursprünglichen, unveränderten Form zu erhalten, gibst du "_" als Sprachcode an. - Ein Vega-Graph kann tabellarische Daten durch die Nutzung von
"tabular:///Example.tab"
als URL für die Datenquelle erhalten.
Auf Commons wird eine eingebundene Seite aus dem Daten-Namensraum, d. h. {{Data:Example.tab}}
, als HTML-Tabelle dargestellt.
Um auf einer Wiki-Seite direkt auf Daten zuzugreifen, kannst du das Modul für tabellarische Daten importieren (wenn du es nicht bereits hast, erfordert das Navbar-Modul) und optional die Vorlage Tabellen-Abfrage (erfordert das zuvor erwähnte Modul für tabellarische Daten).
Mit diesen Werkzeugen kannst du einfach den Wert einer einzelnen Zelle erhalten.
Beispiel
{
"license": "CC0-1.0",
"description": {
"en": "Some good fruits for you",
"es": "Algunas buenas frutas para ti"
},
"sources": "http://example.com and [[Data]] page",
"schema": {
"fields": [
{ "name": "id", "type": "string", "title": { "en": "Fruit ID", "fr": "ID de fruit" }},
{ "name": "count", "type": "number", "title": { "en": "Count", "fr": "Décompte" }},
{ "name": "liked", "type": "boolean", "title": { "en": "Do I like it?", "fr": "L’aimes-tu ?" }},
{ "name": "description", "type": "localized", "title": { "en": "Fruit name", "fr": "Nom du fruit" }}
]
},
"data": [
[
"peaches",
100,
true,
{
"en": "Magnificent but a bit artificial sweet peaches",
"es": "esto puede estar en español",
"fr": "Magnifiques mais ce sont des pêches un tantinet sucrées"
}
],
⋮
]
}
Siehe c:Data:COVID-19 cases in Santa Clara County, California.tab für ein Beispiel, wie die JSON-Daten auf Commons dargestellt werden.
Beschränkungen und Probleme
- Jeder Zeichenkettenwert außer
"sources"
darf nicht länger als 400 Zeichen sein. Sonderzeichen wie neue Zeilen\n
und Tabulatoren\t
sind nicht zulässig. - Die Gesamtgröße der Seite darf 2 MB nicht überschreiten.
Zusätzliche Anmerkungen
- Seiten-Administratoren können Fehlernachrichten wie
jsonconfig-err-license
anpassen, um sicherzustellen, dass Autoren die Einschränkung auf CC0 kennen.
Daten in JSON konvertieren
Es sind verschiedene Werkzeuge verfügbar, um andere Formate in JSON umzuwandeln.
CSV und TSV
- convertcsv.com — (wähle "CSV to JSON Array" aus) generiert als Ausgabe ein JSON-Array, wähle unter 'output options' die Option 'if to JSON Array, create array for column names with name' aus. Du musst weiterhin manuell name: und type: zu jedem Eintrag in fields hinzufügen (siehe Beispiel oben für die Formatierung)
XLS
- xls-to-json — Wandelt in NodeJS XLS-Dateien in JSON um
Siehe auch
- Hilfe:Kartendaten — ähnlich strukturierte Kartendaten im Data:-Namensraum auf Commons.
- Lua-Datenmodule
- Tabular data — einige Details zur Implementierung
- Category:Graph Template Collection — Vorlagen, um mit den Datensätzen auf Commons Graphen zu erzeugen
- DataNamespace — vorheriger Vorschlag
- TheDJ/tabularImportExport.js — Ein Skript von User:TheDJ, um aus CSV- und Excel-Dateien zu importieren und in diese zu exportieren.
- phab:T154071 — Daten, die nicht unter CC0 lizenziert sind, für Datensätze erlauben