Jump to content
MediaWiki

Aide:Données tabulaires

From mediawiki.org
This page is a translated version of the page Help:Tabular data and the translation is 100% complete.
PD Note : si vous modifiez cette page, vous acceptez de placer votre contribution sous licence CC0. Plus d’informations sont disponibles sur le projet Aide dans le domaine public. PD

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 :

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 valeurs true et false.
  • string – une chaîne de caractères ne dépassant pas 400 caractères. Les caractères spéciaux comme les nouvelles lignes \n et les tabulations \t ne 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".
Nom Obligatoire ? Description
name obligatoire le nom de la colonne. La valeur doit commencer par une lettre ou le caractère de soulignement "_", et ne doit contenir que des lettres, des caractères de soulignement ou des chiffres. Ceci est fait pour que chaque entête puisse être facilement utilisée dans un environnement de codage comme Lua ou les graphiques Vega.
type obligatoire doit être initialisé à l'une des valeurs suivantes : "number", "boolean", "string", ou "localized".
title optionnel une traduction optionnelle de l'entête de la colonne. Si elle est définie, elle doit être un objet chaîne de caractères traduite.
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 :
Nom Obligatoire ? Description
name obligatoire nom d'une catégorie à laquelle il faudra ajouter la page de données tabulaires elle-même.
sort optionnel clé de tri à utiliser pour la page dans la catégorie.

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 format Data: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 \n et les tabulations \t ne sont pas autorisés.
  • La taille globale de la page ne peut pas dépasser 2 Mo.
  • Les valeurs null sont transmises par le validateur mais sont susceptibles de causer des problèmes avec le traitement par les modules Lua, car JSON null mène à Lua nil et 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-license pour 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

AltStyle によって変換されたページ (->オリジナル) /