Guide du développeur DSPL

DSPL signifie Dataset Publishing Language. Il s'agit d'un format de représentation à la fois pour les métadonnées (informations sur l'ensemble de données, telles que son nom et son fournisseur, ainsi que les concepts qu'il contient et affiche) et pour ses données réelles. Les ensembles de données décrits dans ce format peuvent être importés dans l'Explorateur de données publiques Google, un outil permettant une exploration visuelle riche des données.

Remarque : Pour importer des données dans Google Public Data à l'aide de l'outil d'importation de données publiques, vous devez disposer d'un compte Google.

Ce document est destiné aux propriétaires de données qui souhaitent que leur contenu soit disponible dans Public Data Explorer. Il va au-delà du tutoriel en découvrant en détail le schéma DSPL et les fonctionnalités compatibles. Il ne nécessite qu'une connaissance de base du langage XML, même si la connaissance des bases de données relationnelles est également utile.

Bien que cela ne soit pas obligatoire, nous vous suggérons de lire le tutoriel, qui est plus court et plus facile à assimiler, avant de consulter ce document.

Présentation

Un ensemble de données DSPL est un fichier ZIP qui contient un fichier XML et un ensemble de fichiers CSV. Les fichiers CSV sont de simples tables contenant les données de l'ensemble de données, tandis que le fichier XML décrit les métadonnées de cet ensemble. Le second inclut des métadonnées d'information telles que des descriptions des mesures, ainsi que des métadonnées structurelles comme les références entre les tables. Ces métadonnées permettent aux utilisateurs non expérimentés d'explorer et de visualiser vos données.

Traiter

En général, le processus de création d'un ensemble de données DSPL est le suivant (certaines étapes peuvent se produire en parallèle):

  1. Créez votre fichier XML DSPL.
  2. Identifiez les sources de données externes à utiliser dans votre ensemble de données.
  3. Définissez vos concepts, vos segments et (éventuellement) des thèmes. Mettez à jour le contenu de votre fichier DSPL de manière itérative.
  4. Exportez vos données sources dans des fichiers .csv.
  5. Créez un ensemble de données DSPL.
  6. Envoyez l'ensemble de données à Google.

Structure XML

Présentation

Le fichier XML DSPL définit les métadonnées de l'ensemble de données, y compris les relations structurelles entre les concepts, les tranches, les sujets et les tables. Bien qu'il soit possible de créer ce fichier manuellement, les outils de traitement de données et les scripts peuvent grandement simplifier le processus. Voir un exemple de fichier DSPL dans une nouvelle fenêtre

Le fichier comprend plusieurs sections, qui sont résumées dans le tableau ci-dessous. À la suite du tableau, nous décrivons chacun d'eux plus en détail.

Section Synthèse Plus d'infos
En-tête et importations Parent pour tous les autres éléments de l'ensemble de données. Inclut l'espace de noms cible (c'est-à-dire l'identifiant) de l'ensemble de données, ainsi que les espaces de noms des ensembles de données importés. Documentation
Informations sur les ensembles de données Nom, description et URL de l'ensemble de données. Documentation
Informations sur le Fournisseur Nom, description et URL du fournisseur de l'ensemble de données. Documentation
Concepts

Définitions des "choses" qui apparaissent dans l'ensemble de données (ex. pays, taux de chômage, sexe, etc.

Chaque concept possède un identifiant unique, qui peut être référencé par des tranches et des tables.

Documentation
Tranches

Combinaisons de concepts pour lesquels il existe des données statistiques dans l'ensemble de données. Chaque tranche contient des dimensions et des métriques.

Les secteurs font référence aux concepts et aux tables, qui contiennent les données réelles. Chaque tranche possède un identifiant unique qui peut être référencé par les tables contenant les données réelles.

Documentation
Tables Définissez les données pour des concepts et des secteurs. Les tables de concepts contiennent des énumérations et les tables de tranches contiennent des données statistiques. Les tables sont définies dans le fichier XML et pointent vers des fichiers .csv contenant les données réelles. Documentation
Thèmes Catégories permettant d'organiser les concepts de l'ensemble de données Bien que cela ne soit pas obligatoire, ces données peuvent être très utiles pour les utilisateurs qui consultent vos données. Documentation

En-tête et importations

Déclarer l'espace de noms de données publiques

Un ensemble de données DSPL commence par un élément <dspl> de premier niveau. Cela permet de délimiter toutes les informations de l'ensemble de données et d'indiquer tous les espaces de noms qui seront utilisés dans le fichier. Exemple:

<?xml version="1.0" encoding="UTF-8"?>
<dspl targetNamespace="http://www.example.com/mystats"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.google.com/dspl/2010" >
    ...
</dspl>

Un espace de noms est un identifiant unique qui peut être associé à un schéma XML (ensemble d'éléments et d'attributs XML). targetNamespace fournit un URI qui identifie votre ensemble de données. Cet URI n'est pas obligatoire pour pointer vers une ressource réelle, mais il est judicieux de faire pointer l'URI vers un document décrivant votre contenu ou votre ensemble de données.

Vous n'êtes pas obligé de fournir un targetNamespace. Si vous ne le faites pas, un élément sera généré automatiquement pour vous au moment de l'importation.

L'attribut targetNamespace est suivi d'une série d'attributs xmlns spécifiant les autres schémas XML qui seront utilisés dans le fichier. Chaque fichier DSPL doit inclure le schéma Google Public Data, dont l'URI est "http://schemas.google.com/dspl/2010", et l'utiliser comme espace de noms par défaut. Il doit également inclure le schéma XML W3 standard identifié par "http://www.w3.org/2001/XMLSchema-instance". Comme décrit dans la section suivante, d'autres espaces de noms peuvent être ajoutés pour inclure des informations provenant d'autres ensembles de données.

Importer d'autres espaces de noms d'ensembles de données

Les ensembles de données peuvent réutiliser des définitions et des données d'autres ensembles de données. Google, par exemple, fournit un ensemble d'ensembles de données de base qui définissent les concepts couramment utilisés dans les données utilisateur. Par exemple, la plupart des ensembles de données ont besoin d'un concept pour représenter des années. Au lieu de définir un nouveau concept, vous pouvez utiliser le concept d'année de l'ensemble de données "http://www.google.com/publicdata/dataset/time". Pour en savoir plus, consultez la page Concepts canoniques.

Pour utiliser un ensemble de données externe, ajoutez l'élément <import> au fichier DSPL juste après la déclaration d'espace de noms et indiquez l'espace de données que vous importez, comme suit:

<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

Ajoutez ensuite l'espace de noms importé (dans ce cas, time="http://www.google.com/publicdata/dataset/google/time") à la déclaration d'espace de noms en haut du fichier, comme ceci:

<?xml version="1.0" encoding="UTF-8"?>
<dspl targetNamespace="http://www.stats-bureau.com/mystats"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.google.com/dspl/2010"
    xmlns:time="http://www.google.com/publicdata/dataset/google/time" >
<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

Votre fichier DSPL peut désormais référencer des éléments de l'ensemble de données de temps public Google Data. Répétez ce processus pour chaque ensemble de données que vous souhaitez référencer.

Référencer le contenu dans des ensembles de données externes

Une fois que vous avez importé un autre ensemble de données, vous devez pouvoir référencer des concepts, des tranches et des données à partir de cet ensemble de données. Pour ce faire, vous pouvez utiliser des références au format prefix:other_id, où prefix est le préfixe utilisé pour l'espace de noms de l'ensemble de données externe.

Voici un exemple de référence au concept year de l'ensemble de données time (décrit ci-dessus):

<slices>
  <slice id="country_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="country_slice_table"/>
  </slice>
  ...
</slices>

Informations sur l'ensemble de données

L'élément <info> inclut des informations descriptives sur l'ensemble de données. Vous trouverez ci-dessous un exemple et des informations détaillées sur les éléments XML pertinents.

Exemple

<info>
  <name>
    <value>Unemployment Rates</value>
  </name>
  <description>
    <value>Worldwide unemployment rates by region</value>
  </description>
  <url>
    <value>http://www.example.com/mystats/info.html</value>
  </url>
</info>

Éléments

Élément Obligatoire ? Description
<info> Oui Contient toutes les informations descriptives sur l'ensemble de données. Inclut les éléments enfants <name>, <description> et <url>.
<name> Oui Enfant de <info>. Inclut l'élément enfant <value>, qui identifie le nom de l'ensemble de données.
<description> Facultative Enfant de <info>. Inclut l'élément enfant <value>, qui comprend une description textuelle de l'ensemble de données.
<url> Oui Enfant de <info>. Lien vers une URL avec plus d'informations sur l'ensemble de données.

Informations sur le fournisseur

L'élément <provider> répertorie les informations sur le fournisseur de l'ensemble de données. Vous trouverez ci-dessous un exemple et des informations détaillées sur les éléments XML pertinents.

Exemple

<provider>
  <name>
    <value>Bureau of Statistics</value>
  </name>
  <url>
    <value>http://www.example.com</value>
  </url>
</provider>

Éléments

Élément Obligatoire ? Description
<provider> Oui Contient toutes les informations descriptives sur le fournisseur de l'ensemble de données. Inclut les éléments enfants <name> et <url>.
<name> Facultative Enfant de <provider>. Inclut l'élément enfant <value>, qui identifie le nom du fournisseur de l'ensemble de données.
<url> Facultative Enfant de <info>. Lien vers une URL contenant plus d'informations sur le fournisseur de l'ensemble de données.

Concepts

Description

Chaque ensemble de données contient un ou plusieurs concepts. Un concept est une définition d'un type de données qui apparaît dans un ensemble de données. Un ensemble de données avec des données démographiques, par exemple, peut comprendre les concepts de pays, d'état, de population et d'année. Les valeurs de données correspondant à un concept donné sont appelées instances de ce concept. Les concepts sont généralement décrits dans l'ensemble de données, mais certains d'entre eux (tels que le temps ou l'année) peuvent être décrits dans des ensembles de données externes.

Chaque concept peut avoir une ou plusieurs propriétés. Une propriété est une caractéristique d'une instance de concept stable au fil du temps. Par exemple, le concept de pays peut avoir les propriétés name, population et capital.

Les concepts peuvent également comporter un ou plusieurs attributs. Les attributs fournissent des informations au niveau du concept, et non sur ses instances individuelles. Par exemple, si nous avions un ensemble de données avec un concept de taux de chômage, nous pourrions utiliser un attribut pour indiquer que ce concept est un pourcentage. Un autre exemple d'utilisation courante des attributs consiste à fournir des informations sur les unités.

Exemple

Voici un exemple de concept de pays avec l'ID unique country et la propriété name. L'ID de concept peut être utilisé pour référencer le concept à partir de tranches et de tables.

<concept id="country" extends="geo:location">
  <info>
    <name><value>Country</value></name>
    <description>
      <value>My list of countries.</value>
    </description>
  </info>
  <type ref="string"/>
  <property id="name">
    <info>
      <name><value>Name</value></name>
      <description>
        <value>The official name of the country</value>
      </description>
    </info>
    <type ref="string" />
  </property>
  <property concept="geo:continent" isParent="true"/>
  <property id="capital" concept="geo:city" />
  <table ref="countries_table" />
</concept>

Description de l'exemple

  • Ce code décrit le concept de pays, qui possède l'ID country, ainsi que les propriétés name, continent et capital.
  • Le concept étend geo:location, le concept canonique des emplacements. En étendant geo:location, country hérite de toutes les propriétés et attributs définis par le concept étendu : nom des propriétés, description, URL, latitude et longitude. country peut redéfinir certains de ces attributs et propriétés, à condition que la définition soit cohérente avec celle fournie par le concept étendu.
  • L'élément de concept <info> décrit les informations clés le concernant. Il s'affiche sur la page de destination de l'ensemble de données dans Public Data Explorer.
  • L'élément concept <type> fait référence au type de contenu. Dans ce cas, il s'agit d'une chaîne, mais cela peut varier. Le concept "Population" serait de type integer. Le concept "Eurovision winner" pourrait être de type booléen.
  • Un élément <property> décrit chaque propriété du concept, y compris son ID unique (id), info et type. Les propriétés peuvent également référencer des concepts pour indiquer que leurs valeurs sont des instances valides de ces concepts.
  • Le concept fait référence à un tableau de données qui pointe vers le fichier CSV contenant les données réelles. La table de données est référencée comme suit: <table ref="countries_table"/>.

    Si votre concept fait référence à une table, le fichier de données associé doit répertorier toutes les instances du concept. Par exemple, vous ne pouvez pas créer de table ne répertoriant que quelques-uns des pays inclus dans l'ensemble de données. (S'il existe un sous-ensemble de pays qui vous intéressent, vous pouvez créer un concept distinct pour les décrire.) Par exemple, mycountries.

Éléments

Élément Obligatoire ? Description
<concepts> Oui Élément de niveau supérieur. Contient tous les éléments <concept>.
<concept> Oui Identifie le concept. La valeur de l'attribut obligatoire id doit être unique au concept de l'ensemble de données. Si le concept fait référence à un tableau de données de concept, la valeur de id doit correspondre à l'en-tête de colonne décrivant le concept dans le tableau de données. Vous pouvez utiliser un attribut extends pour indiquer que ce concept étend un autre concept. La valeur de extends doit correspondre à l'ID d'un concept défini dans le même ensemble de données, ou prendre la forme prefix:concept_id, où concept_id est l'ID d'un concept défini dans l'ensemble de données externe importé associé à prefix.
<info> Facultative Contient des informations descriptives sur le concept.
<name> Oui Enfant de <info>. Nom du concept. L'élément enfant <value> contient le texte, par exemple Country.
<description> Facultative Enfant de <info>. Inclut l'élément enfant <value>, qui comprend une description textuelle du concept.
<url> Facultative Enfant de <info>. Elle inclut l'élément enfant <value>, qui inclut une URL pour le concept.
<pluralName> Facultative Enfant de <info>. Nom au pluriel du concept. L'élément enfant <value> contient le texte, par exemple Countries.
<totalName> Facultative Enfant de <info>. Nom de la combinaison de toutes les instances du concept. L'élément enfant <value> contient le texte (dans le cas d'un concept country). Par exemple, il peut s'agir de World.
<type> Facultative Identifie le type de contenu décrit par le concept. Les valeurs autorisées pour l'attribut obligatoire ref sont les suivantes :
  • chaîne
  • float
  • integer
  • date
  • booléen
Le type peut être omis si le concept étend un autre concept, auquel cas il est hérité du concept étendu.
<property> Facultative

Propriété du concept, telle que capital. La valeur de l'attribut obligatoire id doit être unique au concept. Vous pouvez utiliser un attribut concept facultatif pour indiquer que les valeurs de cette propriété sont des instances d'un concept donné. Si concept est spécifié, id peut être omis. Sa valeur est implicitement définie comme l'ID du concept référencé (par exemple, <property concept="geo:country"/> équivaut à <property id="country" concept="geo:country"/>).

Une propriété peut contenir un attribut booléen isParent pour indiquer que la relation entre une instance du concept et la valeur de cette propriété est hiérarchique.

Une propriété peut contenir un attribut booléen isMapping pour indiquer qu'il existe un mappage 1-1 entre les instances du concept et les valeurs de la propriété.

Une propriété peut spécifier des éléments info et type imbriqués, qui sont définis exactement comme un concept. type est obligatoire si la propriété ne spécifie pas d'attribut concept et doit correspondre au type du concept référencé.

<attribute> Facultative

Attribut du concept. Les attributs représentent des informations supplémentaires sur le concept (par exemple, PIB en pourcentage). La valeur de l'attribut obligatoire id doit être unique au concept. Vous pouvez utiliser un attribut concept facultatif pour indiquer que les valeurs de cet attribut sont des instances d'un concept donné. Si concept est spécifié, id peut être omis. Sa valeur est implicitement définie comme l'ID du concept référencé. (Par exemple, <attribute concept="unit:unit"/> équivaut à <attribute id="unit" concept="unit:unit"/>.

Un attribut peut spécifier des éléments info et type imbriqués, qui sont définis de la même manière qu'un concept. type est obligatoire si l'attribut ne spécifie pas d'attribut concept et doit correspondre au type du concept référencé.

<table> Facultative Identifie le tableau de données contenant des données pour le concept. La valeur de l'attribut obligatoire ref doit correspondre à l'ID de table spécifié dans l'élément <table> associé.

Segments d'application

Description

Une tranche est une combinaison de concepts pour lesquels des données existent. Une tranche contient deux types de références de concept : les dimensions et les métriques. Une dimension est un concept utilisé pour segmenter ou filtrer vos données. En revanche, une métrique décrit la ou les valeurs observées associées à chaque point de données.

En règle générale, les dimensions sont catégorielles, tandis que les métriques sont des valeurs numériques non catégoriques qui varient dans le temps. Voici quelques exemples prototypiques de chacun d'eux:

  • Dimensions: pays, État, comté, région, année, mois, sexe, catégorie d'âge, segment sectoriel
  • Métriques : Population, PIB, taux de chômage, niveau d'alphabétisation, revenus, coût, prix

Exemple

<slices>
  <slice id="country_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="country_slice_table"/>
  </slice>
  ...
</slices>

Description de l'exemple

  • Cette tranche représente la population par pays.
  • Il a les métriques population, country et year. Chaque dimension est un concept déjà défini ailleurs. Le concept country et la métrique population existent dans le même ensemble de données que la tranche actuelle, et sont référencés comme suit: concept="country"
  • Le concept year existe à l'heure de l'ensemble de données importé, identifié par le préfixe utilisé avant le nom du concept (year), comme ceci : concept="time:year"
  • La tranche fait référence à un tableau de données qui pointe vers le fichier CSV contenant les données réelles. La table de données est référencée comme suit : <table ref="country_slice_table"/>. (Voir ci-dessus pour en savoir plus sur l'importation d'ensembles de données.)

Remarque : En général, votre ensemble de données sera plus flexible si vous réduisez au minimum les métriques et créez à la place des dimensions significatives. Par exemple, au lieu de créer les métriques Female Unemployment et Male Unemployment, créez la métrique unique Unemployment, puis ajoutez la dimension Gender qui contient les instances Female et Male.

Éléments

Élément Obligatoire ? Description
<slices> Oui Élément de niveau supérieur. Contient tous les éléments <slice>.
<slice> Facultative Identifie la tranche. La valeur de l'attribut obligatoire id doit être unique à la tranche.
<dimension> Facultative Définit une dimension de la tranche en faisant référence à un concept. La valeur de l'attribut obligatoire concept doit correspondre exactement à l'ID unique du concept et utiliser un préfixe valide si le concept appartient à un ensemble de données importé externe.
<metric> Facultative Définit une métrique de la tranche en faisant référence à un concept. La valeur de l'attribut obligatoire concept doit correspondre exactement à l'ID unique du concept et utiliser un préfixe valide si le concept appartient à un ensemble de données importé externe.
<table> Oui Identifie le tableau de données contenant les données de la tranche. La valeur de l'attribut obligatoire ref doit correspondre à l'ID de table spécifié dans l'élément <table> associé.
<mapDimension> Facultative Enfant de <table>. Contient les attributs concept et toColumn. La valeur de la première correspond à une dimension de la tranche, et la valeur de la seconde correspond à la colonne de table correspondant à la première.
<mapMetric> Facultative Enfant de <table>. Contient les attributs concept et toColumn. La valeur de la première correspond à une métrique de la tranche, et la valeur de la seconde correspond à la colonne de table correspondant à la première.

Tableaux

Description

La section tables du fichier DSPL identifie les tables de données incluses dans l'ensemble de données. Ces tables peuvent être référencées par concepts ou par tranches. Chaque élément <table> spécifie les colonnes des tables et leurs types, et pointe vers un fichier CSV contenant les données de la table.

Exemple

<tables>
  <table id="country_slice_table">
    <column id="country" type="string"/>
    <column id="year" type="date" format="yyyy"/>
    <column id="population" type="integer"/>
    <data>
      <file format="csv" encoding="utf-8">country_slice.csv</file>
    </data>
  </table>
  ...
</tables>

Description de l'exemple

  • Cet exemple décrit la table country_slice_table. La table contient les colonnes country, year et population.
  • Chaque colonne de la table possède un identifiant unique, défini par l'attribut id. Cet identifiant doit correspondre exactement à l'en-tête de colonne approprié dans le fichier de données associé.
  • La valeur de l'attribut facultatif type définit le type de données pour chaque colonne.
  • L'élément <data> décrit le fichier .csv réel (country_slice.csv) contenant les données de la table. Le format de fichier est toujours csv.

Éléments

Élément Obligatoire ? Description
<tables> Oui Élément de niveau supérieur. Contient tous les éléments <table>.
<table> Oui Identifie la table. La valeur de l'attribut obligatoire id doit être unique à la table.
<column> Facultative Enfant de <table>. Informations sur une colonne incluse dans le tableau. Inclut les attributs suivants :
  • id (obligatoire): ID de la colonne.
  • type (facultatif): type de données des informations dans la colonne spécifiée. Les valeurs autorisées sont string, float, integer, date ou boolean.
<data> Facultative Enfant de <table>. Fichier de données référencé par la table. Si le nom du fichier se présente sous la forme d'une URL (par exemple, http://...), le fichier sera récupéré via le protocole approprié (HTTP, HTTPS ou FTP). Sinon, un fichier portant ce nom doit être groupé avec l'ensemble de données. La valeur de l'attribut obligatoire format est toujours csv. Bien que l'attribut encoding soit facultatif, vos fichiers .csv doivent être encodés en UTF-8.

Rubriques

Description

Les sujets classent les concepts de manière hiérarchique afin que les utilisateurs puissent parcourir votre ensemble de données plus facilement.

L'élément <topics> doit apparaître juste avant l'élément <concepts> dans votre fichier DSPL. (L'ordre des éléments est important, et vous ne pourrez peut-être pas importer votre ensemble de données si ceux-ci n'apparaissent pas dans le bon ordre.) Pour utiliser des sujets, référencez-les depuis la définition du concept.

Exemple

Voici un exemple de définition de sujet:

<topics>
  <topic id="population_indicators">
    <info>
      <name>
        <value>Population indicators</value>
      </name>
    </info>
  </topic>
  ...
</topics>
  

...et voici un exemple de référence à ce sujet à partir d'un concept:

<concept id="population">
  <info>
    <name>
      <value>Population</value>
    </name>
    <description>
      <value>Size of the resident population.</value>
    </description>
  <topic ref="population_indicators"/>
  <type ref="integer"/>
</concept>

Les sujets peuvent être imbriqués, et un concept peut faire référence à plusieurs sujets.

Définition de l'élément

Élément Obligatoire ? Description
<topics> Oui Élément de niveau supérieur. Contient tous les éléments <topic>.
<topic> Oui Identifie le sujet. La valeur de l'attribut obligatoire id doit être unique à l'ensemble de données.
<info> Facultative Enfant de <topic>. Contient des informations sur un sujet.
<name> Facultative Enfant de <info>. Son élément enfant <value> spécifie le nom du sujet.

Fichiers de données DSPL

Outre le fichier de métadonnées XML, un ensemble de données DSPL peut également inclure un ou plusieurs fichiers de données au format CSV. Chaque fichier de données accepte une table de l'ensemble de données et est référencé dans l'ancienne version dans la section <data>...</data>. Conceptuellement, ces fichiers et leurs tables associées sont utilisés pour représenter des définitions de concepts ou des données de tranche. Chacun de ces types de fichiers de données est décrit plus en détail ci-dessous.

Notez que, quel que soit leur objectif, tous les fichiers de données doivent être au format texte CSV (UTF-8) délimité par des virgules. Les fichiers ne doivent contenir que du texte brut, pas de code HTML. Vous pouvez créer les fichiers de données manuellement, mais de manière réaliste, vous devrez les manipuler dans l'outil contenant la source de données d'origine (une feuille de calcul, par exemple) ou dans le fichier exporté lui-même.

Les fichiers peuvent être regroupés avec l'ensemble de données ou, si le nom se présente sous la forme d'une URL, et récupérés via HTTP, HTTPS ou FTP à partir d'une source distante.

Fichiers de données de concept

Les fichiers de données conceptuelles contiennent des informations pertinentes sur chaque concept. La définition de concept utilise l'élément <table> pour faire référence à ce fichier.

Exemple

Voici un exemple de table pour le concept country défini ci-dessus:

country, name
AD, Andorra
AF, Afghanistan
AI, Anguilla
AL, Albania
AO, Angola
AQ, Antarctica
AS, American Samoa

Voici comment fonctionne cet exemple:

  • Sauf si des mappages sont spécifiés, la première ligne du fichier de données (en-têtes de colonne) doit correspondre exactement à l'ID de concept et aux ID de propriété appropriés du concept auquel les données sont associées. Cependant, l'ordre des colonnes ne doit pas nécessairement être le même dans le fichier de données et dans la table de concepts. Dans ce cas, la première colonne est associée au concept country, et la deuxième colonne est associée à la propriété name.
  • Les colonnes de propriété sont facultatives. Si une propriété ne comporte pas de colonne dans la table, sa valeur est supposée être non définie pour chaque ligne. Par exemple, le tableau ci-dessus omet les colonnes des propriétés latitude et longitude, de sorte que les pays ne pourront pas être mappés.
  • Chaque valeur du champ d'ID du concept (dans ce cas, country) doit être unique et non vide (un champ vide est un champ ne comportant aucun ou des espaces blancs).
  • Les valeurs des propriétés qui font référence à d'autres concepts doivent être vides ou correspondre à une valeur valide du concept référencé.
  • L'ajout de guillemets entre guillemets est facultatif, sauf s'ils contiennent des virgules, des guillemets doubles ou des caractères de retour à la ligne.
  • Échappez les guillemets droits littérals qui apparaissent dans une valeur en la plaçant devant un autre guillemet.

Fichiers de données de secteurs

Les fichiers de données des secteurs contiennent des données pertinentes sur chaque secteur. La définition de tranche utilise l'élément <table ref="..."> pour faire référence à la définition <table>, qui identifie à son tour ce fichier.

Exemple

Voici un exemple de fichier .csv contenant les données de la tranche population_by_country décrite ci-dessus:

country, year, population
AF, 1960, 9616353
AF, 1961, 9799379
AF, 1962, 9989846
AF, 1963, 10188299

Voici comment fonctionne l'exemple:

  • Le champ de métrique est population. Les champs country et year sont des champs de dimensions.
  • Chaque valeur d'un champ de dimension doit être renseignée. Cela inclut les dimensions temporelles. Les valeurs des champs de métrique peuvent être vides. Une valeur vide est représentée par aucun caractère.
  • Chaque titre de colonne qui référence un concept (par exemple, le premier champ de l'exemple ci-dessus) fait référence au concept country doit correspondre exactement à l'ID unique du concept dans la définition du concept.
  • Une combinaison unique de valeurs de dimension (par exemple, AF, 2000) ne peut apparaître qu'une seule fois.
  • Les lignes d'une même série temporelle (c'est-à-dire les lignes qui ont la même combinaison de toutes les valeurs de dimension, à l'exception du temps) doivent être regroupées, bien qu'il soit nécessaire de les trier.

Fonctionnalités avancées

Ensembles de données multilingues

Valeurs XML traduites

Vous pouvez utiliser l'attribut xml:lang avec chaque élément <value> de votre fichier DSPL. Cet attribut permet d'indiquer la langue du contenu de l'élément à l'aide des tags de langue W3C standards. Notez que l'utilisation de cette fonctionnalité est facultative. Si aucun attribut xml:lang n'est inclus, le contenu est supposé être en anglais.

L'exemple suivant montre les extraits d'un ensemble de données en anglais, chinois simplifié, catalan et chinois:

<dspl ...>
  <info>
    <name>
      <value xml:lang="en">World Bank, World Development Indicators</value>
      <value xml:lang="bg">Световна банка, Индикатори за световно развитие</value>
      <value xml:lang="ca">Banc Mundial, Indicadors del desenvolupament mundial</value>
      <value xml:lang="zh-CN">国家/地区</value>
    </name>
    ...
  </info>

  <concepts>
    <concept id="country">
      <info>
        <name>
          <value xml:lang="en">Country</value>
          <value xml:lang="bg">Страна</value>
          <value xml:lang="ca">País</value>
          <value xml:lang="zh-CN">国家/地区</value>
        </name>
        ...
      </info>
      ...
    </concept>
    ...
  </concepts>

  ...
</dspl>

Propriétés traduites

Dans certains cas, il peut être utile de fournir des traductions qui vont au-delà des métadonnées au niveau du concept et qui s'appliquent en plus (ou à la place) à des instances de concept individuelles. Cela est particulièrement utile lorsque les valeurs d'une propriété de concept (par exemple, le nom) varient selon la langue.

Pour fournir ces valeurs en plusieurs langues, créez une colonne dans le tableau de définition correspondant pour chaque combinaison propriété/langue. Associez ensuite ces colonnes aux propriétés et langues associées en ajoutant un ensemble d'éléments <mapProperty xml:lang="..." ref="..." toColumn="..."> à la balise de référence de la table pour le concept.

Voici un exemple qui définit un concept de pays avec des noms en anglais, en espagnol et en français:

<concepts>
  ...
  <concept id="country" extends="geo:location">
    ...
    <property id="name">
      <info>
        <name>
          <value>Name</value>
        </name>
        <description>
          <value>The official name of the country</value>
        </description>
      </info>
      <type ref="string" />
    </property>
    ...
    <table ref="countries_table">
      <mapProperty xml:lang="en" ref="name" toColumn="name_en"/>
      <mapProperty xml:lang="es" ref="name" toColumn="name_es"/>
      <mapProperty xml:lang="fr" ref="name" toColumn="name_fr"/>
    </table>
  </concept>
  ...
</concepts>

...

<tables>
  ...
  <table id="countries_table">
    <column id="country" type="string"/>
    <column id="name_en" type="string"/>
    <column id="name_es" type="string"/>
    <column id="name_fr" type="string"/>
    ...
  </table>
</tables>

Le fichier CSV pour countries_table présenterait alors le format suivant:

country,name_en,name_es,name_fr,...
...
US,United States of America,Estados Unidos de América,États-Unis d'Amérique,...
...

Concepts mappable

De nombreux concepts (par exemple, le comté, l'État et la ville) comportent des instances correspondant à des emplacements géographiques. DSPL est compatible avec le geocoding de ces instances afin qu'elles puissent être visualisées dans le graphique de carte animé Google Public Data.

Si votre concept est équivalent à celui de pays du monde, d'États ou de comtés des États-Unis, vous pouvez simplement créer un lien vers le concept canonique Google correspondant. Aucun geocoding explicite n'est nécessaire. Pour en savoir plus, consultez le guide des concepts canoniques.

Sinon, vous devez rendre votre concept cartographique. La première étape consiste à le faire s'étendre de geo:location:

<concept id="..." extends="geo:location">
  ...
</concept>

Vous devez ensuite ajouter explicitement la latitude et la longitude en tant que propriétés:

<concept id="..." extends="geo:location">
  ...
  <property id="latitude"/>
  <property id="longitude"/>
</concept>
  

Ces valeurs sont ensuite spécifiées sous forme de colonnes dans la table de données de définition de concept correspondante.

Relations conceptuelles

Les concepts sont souvent liés à d'autres concepts de manière structurée. Par exemple, une instance de continent peut inclure plusieurs instances de pays, qui peuvent elles-mêmes contenir plusieurs instances d'état ou de province. L'encodage de ces relations dans les métadonnées de l'ensemble de données offre des fonctionnalités de visualisation plus riches que ce qu'il serait possible de faire, par exemple pour afficher un arbre réductible des emplacements.

Dans les sections ci-dessous, nous décrivons les relations de concepts acceptées dans le schéma DSPL.

Hiérarchies

Les hiérarchies de concepts sont représentées dans DSPL via l'utilisation d'un attribut isParent="true" dans une balise <property> du concept enfant, qui contient des identifiants d'instances du concept parent.

À titre d'exemple, le concept de Google dans le comté des États-Unis se présente comme suit:

<concept id="us_county" extends="geo:location">
  <info>
    <name>
      <value xml:lang="en">County</value>
    </name>
    ...
  </info>
  ...
  <property id="state" concept="us_state" isParent="true"/>
  ...
  <data>
    <table ref="reference_us_counties"/>
  </data>
</concept>
  

La table de données de support possède une colonne state avec le code d'état à deux lettres de chaque comté. Ce type de métadonnées permet à Public Data Explorer d'afficher les États et les comtés sous la forme d'une hiérarchie, une fonctionnalité qui facilite grandement l'exploration pour les utilisateurs.

Notez qu'un concept peut avoir plusieurs enfants, mais pas plus d'un parent.

Mappages

Les mappages de concepts (c'est-à-dire les concepts qui représentent, fondamentalement, la même chose) sont représentés par un attribut isMapping="true" dans une balise property du concept mappé.

Spécifier qu'un concept est mappé à un autre permet au premier d'hériter de toutes les propriétés et attributs du second. Par exemple, cette option est utile pour "associer" des concepts géographiques personnels à ceux définis dans l'ensemble de données géographique canonique de Google :

<concept id="my_country" extends="geo:location">
  <info>
    <name>
      <value xml:lang="en">Country</value>
    </name>
    ...
  </info>
  ...
  <property id="google_country_code" concept="geo:country" isMapping="true"/>
  <data>
    <table ref="countries_concept"/>
  </data>
</concept>
  

Extensions

Les extensions de concept sont désignées par un élément extends dans la définition de concept correspondante. Les extensions sont utiles pour indiquer qu'un concept particulier est une sous-classe d'un autre concept plus large. Le concept étendu hérite de tous les attributs et propriétés de son parent, et peut également en ajouter d'autres.

Par exemple, le concept currency de Google étend unit:

<concept id="unit">
  ...
</concept>

<concept id="currency" extends="unit">
  <info>
    <name>
      <value xml:lang="en">Currency unit</value>
    </name>
    ...
  </info>
  ...
  <table ref="currency_table"/>
</concept>
  

Pour en savoir plus et obtenir des exemples, consultez la discussion sur les extensions de concept dans ce tutoriel.

Envoyer votre ensemble de données

Pour envoyer votre ensemble de données à Google Public Data Explorer, procédez comme suit:

  1. Créez un répertoire.
  2. Enregistrez le fichier dspl de l'ensemble de données dans le répertoire que vous avez créé. Assurez-vous d'utiliser l'extension .xml.
  3. Enregistrez tous les fichiers .csv locaux dans le même répertoire. Les fichiers de données référencés via des URL peuvent être omis.
  4. Compressez le répertoire.
  5. Importez votre ensemble de données dans Google Public Data Explorer.

Une fois votre ensemble de données importé et validé, vous pouvez le tester une fois connecté à votre compte Google. Elle ne sera publiée qu'une fois que vous l'aurez vérifiée et que vous nous aurez indiqué qu'elle est prête.