Aide:Données tabulaires
Les données tabulaires permettent aux utilisateurs de créer des tableaux de données au format CSV, et de les utiliser depuis d'autres wikis pour créer automatiquement des tableaux, des listes, ou des graphiques.
Pour créer une nouvelle table, allez sur Wikimedia Commons, et créez une nouvelle page dans l'espace de noms Data avec un suffixe .tab tel que Data:Sandbox/Name/Example.tab.
N'hésitez pas à expérimenter en créant des pages avec le préfixe Sandbox/<nom d'utilisateur>/.
Pour l'instant, le contenu de la page ne peut être édité que dans le format JSON brut et avec un éditeur de tableaux de base, mais un gadget permet d'importer et d'exporter des fichiers CSV et Excel.
Another script allows import from existing graph wikitext. Generative AI can be prompted to import data from existing graph and table wikitext, and to update with new data.
À terme (écrit le 21 novembre 2016), nous espérons qu'il y aura un éditeur de type tableur pour simplifier l'édition des données.
Le format des données sous-jacent correspond largement à la norme Frictionless Data standard pour une ressource de données tabulaires.
Licence des données
Toutes les données de l'espace de noms Data: doivent indiquer explicitement la licence des données.
La licence recommandée est du domaine public, sous licence Creative Commons Zero (CC0).
Pour indiquer cela, chaque page de données doit avoir "license": "CC0-1.0", ce qui signifie que les données peuvent être utilisées sous la CC0 version 1.0, ou (à votre choix) n'importe quelle version ultérieure.
En éditant les données, vous reconnaissez les conditions d'utilisation et vous acceptez irrévocablement de publier votre contribution dans le domaine public sous licence CC0.
S'il n'est pas possible de publier les données sous la licence CC0, les licences suivantes sont également supportées :
- CC-BY:
- CC-BY-1.0: Licence Creative Commons Attribution 1.0
- CC-BY-2.0: Licence Creative Commons Attribution 2.0
- CC-BY-2.5: Licence Creative Commons Attribution 2.5
- CC-BY-3.0: Licence Creative Commons Attribution 3.0
- CC-BY-4.0: Licence Creative Commons Attribution 4.0
- CC-BY-4.0+: Licence Creative Commons Attribution 4.0 ou ultérieure
- CC-BY-SA
- CC-BY-SA-1.0: Licence Creative Commons Attribution Share Alike 1.0
- CC-BY-SA-2.0: Licence Creative Commons Attribution Share Alike 2.0
- CC-BY-SA-2.5: Licence Creative Commons Attribution Share Alike 2.5
- CC-BY-SA-3.0: Licence Creative Commons Attribution Share Alike 3.0
- CC-BY-SA-4.0: Licence Creative Commons Attribution Share Alike 4.0
- CC-BY-SA-4.0+: Licence Creative Commons Attribution Share Alike 4.0 ou ultérieure
- ODbL-1.0
- ODbL-1.0: Licence ODC Open Database v1.0
Tout modèle important des données de sources hors licence CC0 doit se conformer aux modalités d'attributions pertinentes, il est donc fortement recommandé de préférer la licence CC0 dans la mesure du possible.
Dans le futur, la liste des licences supportées par les données pourra être étendue.
Types de données
Les données JSON tabulaires prennent en charge plusieurs types de valeurs de base.
Vous pouvez également utiliser null au lieu de la valeur pour la marquer comme manquante.
number– valeur numérique avec une partie fractionnelle optionnelle et pouvant utiliser une notation E exponentielle, mais qui n'inclut pas les nombres non numériques comme NaN.boolean– ne permet que les valeurstrueetfalse.string– une chaîne de caractères ne dépassant pas 400 caractères. Les caractères spéciaux comme les nouvelles lignes\net les tabulations\tne sont pas autorisés.localized– chaîne multilingue, représentée comme un objet avec des clés qui sont les codes des langues (par exemple "en"), et des valeurs qui sont des chaînes limitées à 400 caractères. Par exemple,{"en":"string in English", "fr":"chaîne de texte en français", ...}a des valeurs chaînes de caractères à la fois en anglais et en français.
Champs de niveaux supérieurs
Les données tabulaires possèdent plusieurs éléments de niveau supérieur, obligatoires et optionnels :
| Nom | Obligatoire ? | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
license |
obligatoire | doit toujours être initialisé avec la chaîne "CC0-1.0". Pour l'instant, les données tabulaires ne prennent en charge que la version 1.0 ou toute version ultérieure de la licence CC0 (dédié au domaine public) Il se peut que d'autres licences supportées soient disponibles à l'avenir.
| ||||||||||||
schema: {"fields": [{...}, {...}, ...]} |
obligatoire | doit être défini sur un objet qui contient une liste. Chaque champ décrit une colonne de données du tableau. Chaque champ doit être un objet avec des valeurs obligatoires de "name" et de "type".
| ||||||||||||
data |
obligatoire | doit toujours être initialisé avec une liste de listes. Chaque sous-liste doit avoir le même nombre d'éléments que les entêtes et correspondre au type des valeurs. | ||||||||||||
description |
optionnel | doit être défini comme une valeur de chaîne traduite - un objet avec au moins une valeur de clé, où la clé est le code de langue (par exemple en), et la valeur est une chaîne de description. | ||||||||||||
sources |
optionnel | doit être une chaîne de marquage wiki décrivant la source des données. | ||||||||||||
mediawikiCategories |
optionnel | doit être initialisé avec une liste d'objets. Chacun d'eux pouvant avoir deux valeurs :
|
Utilisation
Il y a deux façons d'utiliser ces données sur le wiki :
- un script Lua de n'importe quel wiki peut obtenir ces données en appelant
mw.ext.data.get("Example.tab"). La fonction renvoie les données quasiment dans le même format que le JSON d'origine, mais toutes les chaînes traduites seront converties en chaînes normales et le champ de licence inclura également un nom de licence traduit. Pour obtenir les données dans une autre langue, passez le code de langue en second paramètre. Pour obtenir les données dans la forme originale et non modifiée, utilisez "_" comme code de langue. - Les rendus de Chart sont fournis par les données tabulaires, soit en utilisant la page référencée dans le champ
"source": "Example.tab"de la page de formatData:Example.chart, ou redéfinies à l'invocation comme avec{{#chart:Example.chart|source=Example.tab}}. (Ceci remplace l'ancien système de graphique Vega qui pouvait obtenir les données tabulaires en utilisant"tabular:///Example.tab"comme URL de source de données.)
Sur Commons, la transclusion d'une page de l'espace de noms Data, telle {{Data:Example.tab}}, la représentera sous la forme d'un tableau HTML.
Pour accéder directement aux données sur une page wiki, vous pouvez importer (si vous ne l'avez pas déjà fait) le module de données tabulaires (nécessite le module de la barre de navigation) et optionnellement le modèle de requête tabulaire (nécessite le module de données tabulaires mentionné ci-dessus).
Avec ces outils, il est facile d'obtenir la valeur d'une seule cellule.
Exemple
{ "license":"CC0-1.0", "description":{ "en":"Some good fruits for you", "es":"Algunas buenas frutas para ti" }, "sources":"http://example.com and [[a wiki page]]", "schema":{ "fields":[ {"name":"id","type":"string","title":{"en":"Fruit ID","fr":"ID de fruit"}}, {"name":"name","type":"localized","title":{"en":"Fruit name","fr":"Nom de fruit"}}, {"name":"count","type":"number","title":{"en":"Count","fr":"Décompte"}}, {"name":"like","type":"boolean","title":{"en":"Do I like it?","fr":"L’aimes-tu ?"}}, {"name":"description","type":"localized","title":{"en":"Fruit description","fr":"Description du fruit"}} ] }, "data":[ [ "peaches", { "en":"Peaches", "es":"Melocotones", "fr":"Pêches" }, 100, true, { "en":"Magnificent but a bit sweet", "es":"Magníficos pero un poco dulces", "fr":"Magnifiques mais un peu sucrées" } ], [ "apples", { "en":"Apples", "es":"Manzanas", "fr":"Pommes" }, 150, true, { "en":"Red, not green", "es":"Rojas, no verdes", "fr":"Rouges, pas vertes" } ] ], "mediawikiCategories":[ { "name":"Example category", "sort":"Its sortkey" }, { "name":"Example category 2" } ] }
Voir c:Data:COVID-19 cases in Santa Clara County, California.tab pour un exemple de la manière dont les données JSON sont affichées sur Commons.
Restrictions et pièges
- Chaque valeur de chaîne de caractères, à l'exception de
"sources", ne doit pas dépasser 400 symboles. Les caractères spéciaux comme les retours à la ligne\net les tabulations\tne sont pas autorisés. - La taille globale de la page ne peut pas dépasser 2 Mo.
- Les valeurs
nullsont transmises par le validateur mais sont susceptibles de causer des problèmes avec le traitement par les modules Lua, car JSONnullmène à Luanilet ces entrées finissent par manquer des rangées des tables, causant l'arrêt prématuré des modèles d'itération communs.
Notes aux administrateurs
- Les administrateurs de sites peuvent personnaliser les messages d'erreur, tels que
jsonconfig-err-licensepour s'assurer que les éditeurs connaissent la limitation dûe à CC0 seule.
Conversion des données en JSON
Il existe plusieurs outils disponibles pour convertir d'autres formats en JSON
Considérations à propos de Extension:Chart and Excel/Libreoffice Calc
Beaucoup de feuilles de calcul Excel ont plus de colonnes qu'il n'en faut pour les afficher dans un diagramme. Depuis juin 2025, Extension:Chart ne prend en charge que la représentation de select colonnes (courbes).
Avant cela, pour représenter graphiquement et convenablement un sous-ensemble de courbes, il faut produire une version de la page .tab avec le sous-ensemble correct des colonnes concernées.
Les données peuvent être exportées de Commons vers un fichier CSV, modifiées dans un tableur, puis converties à nouveau en JSON tabulaire avec c:MediaWiki talk:Gadget-TabularImportExport.js.
CSV et TSV
- convertcsv.com – sélectionner CSV vers tableau JSON pour générer la sortie sous forme de tableau JSON : sous 'output options' sélectionner l'option 'if to JSON Array, create array for column names with name'. Vous devrez encore ajouter manuellement "name:" et "type:" à chaque entrée dans "fields" (voir l'exemple ci-dessus pour le formatage)
XLS
- xls-to-json – convertit les fichiers xls en JSON dans NodeJS
Voir aussi
- Help:Map Data – données de cartes structurées de la même manière, dans l'espace de noms
Data:sur Commons. - Extension:Chart
- Modules de données Lua
- Tabular data – quelques détails d'implémentation
- Category:Graph Template Collection – modèles pour faire des graphiques avec les ensembles de données de Commons
- Gadget-TabularImportExport – Un gadget pour importer et exporter des fichiers au format CSV et Excel, à partir de User:TheDJ.
- Tomastvivlaren/graphDataImport – Un script pour importer des données tabulaires à partir du wikitexte Graph:Chart.
- commons:module:Json2table et commons:template:Json2table — module et modèle permettant l'exportation automatique des données tabulaires, stockées dans Commons, vers des tableaux dans les pages Wikipedia (s'ils sont installés sur la Wikipedia locale)
- phab:T154071 – autorise des données qui ne sont pas sous licence CC0 dans les ensembles de données
- DataNamespace – proposition précédente