Hjälp:Tabelldata
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. |
Tabelldata 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.
The underlying data format largely matches the Frictionless Data standard for a tabular data resource.
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
Tabelldata har flera obligatoriska och valfria topp-nivå-element:
license
– obligatoriskt fält måste alltid sättas till strängvärdet"CC0-1.0"
. Tabelldata 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. Alla underlistor måste ha samma antal element som rubrik, och måste matcha värdetyperna.description
– valfritt fält, måste anges som ett lokaliserat strängvärde - ett objekt med minst ett nyckel-värde där nyckeln är en språkkod (t.ex. "sv"), och värdet är en beskrivningsources
– valfritt fält, måste vara en wikimarkeringssträngvärde som beskriver datans källa.
Användning
Det finns två sätt att använda denna data:
- Ett Lua-skript på alla wikier kan hämta denna data genom att anropa
mw.ext.data.get("Example.tab")
. Funktionen returnerar tabelldata i nästan samma format som det ursprungliga JSON, förutom det att alla lokaliserade strängar kommer omvandlas till vanliga strängar och licensfältet kommer också innehålla lokaliserade licensnamn. För att hämta datan på ett annat språk anger du språkkoden som den andra parametern. För att hämta datan i ursprunglig, omodifierad form, använder du "_" som språkkod. - Ett Vega-diagram kan hämta tabelldata genom att använda
"tabular:///Example.tab"
som url till datakälla.
Om man transkluderar en sida från Data-namnrynden på Commons, t.ex. {{Data:Example.tab}}
, kommer det renderas som en HTML-tabell.
För att komma åt datan direkt på en wikisida kan du importera (om du inte redan har dem) tabelldatamodulen (kräver modulen navbar) och kanske mallar tabellfrågor (kräver den tidigare nämnde tabelldatamodulen).
Med dessa verktyg kan du lätt hämta en cells värde.
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"
}
],
⋮
]
}
Läs c:Data:COVID-19 cases in Santa Clara County, California.tab för ett exempel på hur JSON-data renderas på Commons.
Begränsningar och aha
- Inga strängvärden förutom
"sources"
får vara längre än 400 tecken långa. Specialtecken som nya rader\n
och flikar\t
är inte tillåtna. - Sidans totala storlek får inte överstiga 2MB.
Administratörsanteckningar
- Webbplatsens administratörer kan anpassa meddelanden som
jsonconfig-err-license
för att se till att redigerare känner till begränsningen till bara CC0.
Konvertera data till JSON
Det finns flera tillgängliga verktyg för att konvertera andra format till JSON
CSV och TSV
- convertcsv.com – (välj "CSV till JSON-array) Generera utmatning som JSON-array, under "utmatningsalternativ" välj alternativet "om till JSON-array, skapa array för kolumnnamn med namn" Du behöver fortfarande manuellt lägga till name: och type: till alla inlägg fields (se exempel ovan för formatering)
XLS
- xls-to-json – Konvertera xls-filer till JSON o 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