Hjälp:Tabellarisk data
![]() |
OBS: När du redigerar denna sida samtycker du till att släppa ditt bidrag under CC0. Se hjälpsidorna för Public Domain för mer information. | ![]() |
Tabellarisk data gör så att användare kan skapa CSV-liknande datatabeller och använda dem från andra wikier för att skapa automatiska tabeller, listor och diagram.
För att skapa en ny tabell går du till Wikimedia Commons och skapar en ny sida i namnrymden Data med ett .tab-suffix, såsom Data:Sandbox/Name/Example.tab
.
Experimentera gärna genom att skapa sidor med prefixet Sandbox/<username>/.
Sidinnehåll kan för tillfället endast redigeras i oformaterat JSON-format och med en grundläggande tabellredigerare, men en finess möjliggör import/export från/till CSV- och Excel-filer.
Eventuellt (skrivet 21 november 2016), vi hoppas att det kommer finnas en kalkylblads-liknande editor för att förenkla dataredigering.
Datalicens
Alla data i namnrymden Data:
måste uttryckligen ange datans licens.
Den rekommenderade licensen är Public Domain, licensierad under licensen Creative Commons Zero (CC0).
För att ange detta måste alla datasidor ha "license": "CC0-1.0"
, vilket betyder att datan kan användas under CC0 version 1.0 eller (om du vill) senare versioner.
Genom att redigera datan godkänner du användarvillkoren och går med på att oåterkalleligen släppa dina bidrag till allmän egendom under CC0.
Om det inte går att publicera datan under CC0, stöds också följande licenser:
- 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
Alla mallar som hämtar data från icke-CC0-licensierade datauppsättningar behöver följa relevanta tillskrivningsvillkor, därför rekommenderas det starkt att föredra CC0 närhelst möjligt.
Någon gång i framtiden kan listan över licenser som stöds av namnrymden Data expanderas.
Datatyper
Tabellarisk JSON-data stödjer flera grundläggande värdetyper.
Du kan också istället använda värdets null
för att markera att det saknas.
number
— Ett numeriskt värde med en valfri fraktionsdel och kan använda exponentiell E-notation, man kan inte inkludera icke-nummer som NaN.boolean
— tillåter bara värdenatrue
ochfalse
.string
— ett textsträng som inte är längre än 300 tecken lång. Specialtecken som nya rader\n
och rader\t
är inte tillåtna.localized
— En flerspråkig sträng, representerad som ett objekt med nycklar som är språkkoder (t.ex. "sv") och värden som är en sträng med över begränsningen på max 400 tecken. Till exempel,{"en":"string in English", "fr":"chaîne de texte en français", ...}
har strängvärden för både engelska och franska.
Toppnivåfält
Tabellarisk data har flera obligatoriska och valfria topp-nivå-element:
license
— obligatoriskt fält måste alltid sättas till strängvärdet"CC0-1.0"
. Tabellarisk data stödjer för tillfället bara licensen CC0 (Public Domain dedication) version 1.0 eller senare. Stöd för fler licenser kan komma i framtiden.schema: {"fields": [{...}, {...}, ...]}
— obligatoriskt fält måste sättas till ett objekt som innehåller en lista. Varje fält beskriver en kolumn med tabelldata. Varje fält måste vara ett objekt med de obligatoriska värdena"name"
och"type"
.name
— obligatoriskt fält, är kolumnens namn. Värdet måste börja med en bokstav eller ett understreck"_"
och får endast innehålla bokstäver, understreck eller siffror. Detta gör så att varje rubrik lätt kan användas från en kodningsmiljö såsom Lua eller Vega-diagram.type
— obligatoriskt fält, måste ställas in till en av dessa värden:"number"
,"boolean"
,"string"
eller"localized"
.title
— valfritt fält, är en valfri översättning för kolumnens rubrik. Om angiven måste den innehålla ett lokaliserat strängobjekt.
data
— obligatoriskt fält, måste alltid anges till en lista över listor. Each sub-list must have the same number of elements as headers, and must match the value types.description
— optional field, must be set to a localized string value - an object with at least one key-value, where the key is a language code (e.g. "en"), and the value is a description string.sources
— optional field, must be a Wiki markup string value that describes the source of the data.
Användning
Det finns två sätt att använda denna data:
- A Lua script on any wiki can get this data by calling
mw.ext.data.get("Example.tab")
. The function returns tabular data in almost the same format as the original JSON, except that all localized strings will be converted to regular strings, and the license field will also include a localized license name. To get the data in another language, pass language code as the second parameter. To get the data in the original, unmodified form, use "_" as the language code. - A Vega graph can get tabular data by using
"tabular:///Example.tab"
as the data source url.
On Commons, transcluding a page from the Data namespace, i.e. {{Data:Example.tab}}
, will render it as an HTML table.
To access data directly on a wiki page, you can import (if you don't already have them) the tabular data module (requires the navbar module) and optionally the tabular query template (requires the before mentioned tabular data module).
With these tools you can easily get the value of a single cell.
Exempel
{
"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"
}
],
⋮
]
}
See c:Data:COVID-19 cases in Santa Clara County, California.tab for an example of how the JSON data renders on Commons.
Begränsningar och aha
- Each string value except the
"sources"
must be no more than 400 symbols long. Special characters like new lines\n
and tabs\t
are not allowed. - The overall size of the page may not exceed 2MB.
Administratörsanteckningar
- Site administrators may customize error messages, such as
jsonconfig-err-license
to make sure editors know about the CC0-only limitation.
Konvertera data till JSON
There are several tools available for converting other formats to JSON
CSV and TSV
- convertcsv.com — (select "CSV to JSON Array") Generate output as JSON Array, under 'output options' select option 'if to JSON Array, create array for column names with name'. You will still need to manually add name: and type: to each entry in fields (see example above for formatting)
XLS
- xls-to-json — Convert xls files to JSON in NodeJS
Se även
- Help:Map Data — snarlikt strukturerad kartdata i namnrymden Data: på Commons.
- Lua-datamoduler
- Tabular data — vissa implementeringsdetaljer
- Category:Graph Template Collection — mallar för att skapa diagram med Commons datamängder
- DataNamespace — tidigare förslag
- TheDJ/tabularImportExport.js — Ett skript för att importera från och exportera till CSV- och Excel-filer, av User:TheDJ.
- phab:T154071 — Tillåt icke-CC0-licenser för datamängder