Guía para desarrolladores de DSPL

DSPL significa lenguaje de publicación de conjuntos de datos. Es un formato de representación para los metadatos (información sobre el conjunto de datos, como su nombre y proveedor, así como los conceptos que contiene y muestra) y los datos reales de los conjuntos de datos. Los conjuntos de datos que se describen en este formato se pueden importar a Google Public Data Explorer, una herramienta que permite una exploración visual y enriquecida de los datos.

Nota: Para subir datos a los datos públicos de Google mediante la herramienta de carga de datos públicos, debes tener una Cuenta de Google.

Este documento está dirigido a los propietarios de datos que deseen que su contenido esté disponible en el explorador de datos públicos. Va más allá del instructivo, ya que profundiza en los detalles del esquema de DSPL y las funciones compatibles. Se da por sentado que el usuario tiene un conocimiento básico de XML, aunque también es útil tener conocimiento sobre bases de datos relacionales.

Aunque no es un requisito, te sugerimos que leas el Instructivo, que es más breve y fácil de asimilar antes de consultar este documento.

Descripción general

Un conjunto de datos de DSP es un archivo ZIP que contiene un archivo XML y un conjunto de archivos CSV. Los archivos CSV son tablas simples que contienen los datos del conjunto de datos, mientras que el archivo XML describe los metadatos del conjunto de datos. Estos últimos incluyen metadatos informativos, como descripciones de medidas, además de metadatos estructurales, como referencias entre tablas. Estos metadatos permiten que los usuarios no expertos exploren y visualicen tus datos.

Proceso

En general, el proceso de creación de un conjunto de datos de DSP es el siguiente (algunos pasos pueden ocurrir en paralelo):

  1. Crea el archivo en formato XML de DSPL.
  2. Identifica las fuentes de datos externas que se usarán en tu conjunto de datos.
  3. Define tus conceptos, segmentos y temas (opcional). Actualiza de manera iterativa el contenido de tu archivo DSPL.
  4. Exporta tus datos de origen a archivos .csv.
  5. Crea un conjunto de datos de DSPL.
  6. Envía el conjunto de datos a Google.

Estructura XML

Descripción general

El archivo en formato XML de la DSPL define los metadatos del conjunto de datos, incluidas las relaciones estructurales entre conceptos, secciones, temas y tablas. Aunque es posible crear este archivo de forma manual, las herramientas y las secuencias de comandos de procesamiento de datos pueden optimizar en gran medida el proceso. Consulta un archivo DSPL de muestra en una ventana nueva.

El archivo incluye varias secciones que se resumen en la siguiente tabla. Siguiendo la tabla, describimos cada una de estas con más detalle.

Sección Resumen Más información
Importaciones y encabezados El superior para todos los demás elementos del conjunto de datos. Incluye el espacio de nombres de destino (es decir, el identificador) para el conjunto de datos, junto con los espacios de nombres de los conjuntos de datos importados. Documentación
Información del conjunto de datos El nombre, la descripción y la URL del conjunto de datos. Documentación
Información del proveedor El nombre, la descripción y la URL del proveedor del conjunto de datos. Documentación
Conceptos

Definiciones de "cosas" que aparecen en el conjunto de datos (p.ej., países, tasa de desempleo, género, etc.)

Cada concepto tiene un identificador único al que se puede hacer referencia por segmentos y tablas.

Documentación
Secciones

Combinaciones de conceptos para los que hay datos estadísticos en el conjunto de datos Cada porción contiene dimensiones y métricas.

Las secciones hacen referencia a conceptos y también a tablas, que contienen los datos reales. Cada porción tiene un identificador único al que pueden hacer referencia las tablas que contienen los datos reales.

Documentación
Tablas Define los datos para conceptos y secciones. Las tablas de conceptos contienen enumeraciones y las tablas de secciones contienen datos estadísticos. Las tablas se definen en el archivo XML y apuntan a los archivos .csv que contienen los datos reales. Documentación
Temas Categorías para organizar conceptos de conjuntos de datos. Si bien no son obligatorios, pueden ser muy útiles para los usuarios que exploran tus datos. Documentación

Importaciones y encabezados

Declara el espacio de nombres de datos públicos

Un conjunto de datos de DSPL comienza con un elemento <dspl> de nivel superior. Esto se usa para incluir toda la información del conjunto de datos y para indicar los espacios de nombres que se usarán en todo el archivo. Por ejemplo:

<?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 espacio de nombres es un identificador único que se puede asociar con un esquema XML (un conjunto de atributos y elementos XML). targetNamespace proporciona un URI que identifica el conjunto de datos. No se requiere que este URI apunte a un recurso real, pero se recomienda que el URI se resuelva en un documento que describa tu contenido o conjunto de datos.

No es necesario que proporciones un targetNamespace. De lo contrario, se generará una automáticamente en el momento de la importación.

El atributo targetNamespace va seguido de una serie de atributos xmlns que especifican otros esquemas XML que se usarán en el archivo. Cada archivo DSPL debe incluir el esquema de datos públicos de Google, cuyo URI es "http://schemas.google.com/dspl/2010", y usarlo como el espacio de nombres predeterminado. También debe incluir el esquema estándar XML W3 identificado por "http://www.w3.org/2001/XMLSchema-instance". Como se describe en la siguiente sección, se pueden agregar otros espacios de nombres para incluir información de otros conjuntos de datos.

Importa otros espacios de nombres de conjuntos de datos

Los conjuntos de datos pueden reutilizar definiciones y datos de otros conjuntos de datos. Google, por ejemplo, proporciona una serie de conjuntos de datos básicos que definen conceptos que suelen aparecer en los datos del usuario. Por ejemplo, la mayoría de los conjuntos de datos necesitan un concepto que represente años. En lugar de definir un concepto nuevo, puedes usar el concepto de año del conjunto de datos "http://www.google.com/publicdata/dataset/time". Consulta la página Conceptos canónicos para obtener más información.

Para usar un conjunto de datos externo, agrega el elemento <import> al archivo DSPL justo después de la declaración del espacio de nombres y, luego, indica el espacio de datos que importarás de la siguiente manera:

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

Luego, agrega el espacio de nombres importado (en este caso, time="http://www.google.com/publicdata/dataset/google/time") a la declaración de espacio de nombres en la parte superior del archivo, de la siguiente manera:

<?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"/>

Tu archivo DSPL ahora puede hacer referencia a elementos del conjunto de datos de tiempo de datos públicos de Google. Repite este proceso para cada conjunto de datos al que desees hacer referencia.

Haz referencia a contenido en conjuntos de datos externos

Una vez que hayas importado otro conjunto de datos, debes poder hacer referencia a los conceptos, las secciones y los datos de ese conjunto de datos. Con este fin, puedes usar referencias del formato prefix:other_id, en el que prefix es el prefijo que se usa para el espacio de nombres del conjunto de datos externo.

A continuación, se muestra un ejemplo de una referencia al concepto year del conjunto de datos time (descrito anteriormente):

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

Información del conjunto de datos

El elemento <info> incluye información descriptiva sobre el conjunto de datos. A continuación, se muestra un ejemplo y detalles sobre los elementos XML correspondientes.

Ejemplo

<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>

Elementos

Elemento ¿Es obligatoria? Descripción
<info> Incluye toda la información descriptiva sobre el conjunto de datos. Incluye los elementos secundarios <name>, <description> y <url>.
<name> Secundario de <info> Incluye el elemento secundario <value>, que identifica el nombre del conjunto de datos.
<description> Opcional Secundario de <info> Incluye el elemento secundario <value>, que incluye una descripción de texto del conjunto de datos.
<url> Secundario de <info> Un vínculo a una URL con más información sobre el conjunto de datos.

Información del proveedor

El elemento <provider> enumera información sobre el proveedor de conjuntos de datos. A continuación, se muestra un ejemplo y detalles sobre los elementos XML correspondientes.

Ejemplo

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

Elementos

Elemento ¿Es obligatoria? Descripción
<provider> Incluye toda la información descriptiva sobre el proveedor del conjunto de datos. Incluye los elementos secundarios <name> y <url>.
<name> Opcional Secundario de <provider> Incluye el elemento secundario <value>, que identifica el nombre del proveedor del conjunto de datos.
<url> Opcional Secundario de <info> Un vínculo a una URL con más información sobre el proveedor del conjunto de datos.

Conceptos

Descripción

Cada conjunto de datos contiene uno o más conceptos. Un concepto es una definición de un tipo de datos que aparece en un conjunto de datos. Un conjunto de datos con datos demográficos de población, por ejemplo, podría tener los conceptos de país, estado, población y año. Los valores de datos correspondientes a un concepto dado se denominan instancias de ese concepto. Por lo general, los conceptos se describen en el conjunto de datos, pero algunos conceptos (como la hora o el año) se pueden describir en conjuntos de datos externos.

Cada concepto puede tener una o más propiedades. Una propiedad es una característica de una instancia de concepto que es estable en el tiempo. Por ejemplo, el concepto de país podría tener las propiedades name, population y capital.

Los conceptos también pueden tener uno o más atributos. Los atributos proporcionan información en el nivel del concepto, no en sus instancias individuales. Por ejemplo, si tenemos un conjunto de datos con un concepto de tasa de desempleo, podríamos usar un atributo para designar que este concepto es un porcentaje. Otro ejemplo de uso común de los atributos es proporcionar información de la unidad.

Ejemplo

A continuación, se muestra un ejemplo de un concepto de país con el ID único country y la propiedad name. El ID de concepto se puede usar para hacer referencia al concepto desde segmentos y tablas.

<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>

A continuación, le mostramos cómo funciona este ejemplo.

  • Este código describe el país de concepto, que tiene el ID country y las propiedades name, continent y capital.
  • El concepto extiende geo:location, el concepto canónico para ubicaciones. Si extiendes geo:location, country hereda todas las propiedades y los atributos definidos por el concepto extendido: nombre, descripción, URL, latitud y longitud de las propiedades. Está bien que country vuelva a definir algunos de estos atributos y propiedades, siempre que la definición sea coherente con la que proporciona el concepto extendido.
  • El elemento <info> del concepto describe la información clave del concepto. Esto se muestra en la página de destino del conjunto de datos en Public Data Explorer.
  • El elemento de concepto <type> hace referencia al tipo de contenido. En este caso, se trata de un string, pero puede variar. El concepto Población tendría el tipo integer; el concepto Eurovision winner podría tener el tipo booleano.
  • Un elemento <property> describe cada propiedad del concepto, incluido su ID único (id), info y type. Las propiedades también pueden hacer referencia a los conceptos para indicar que sus valores son instancias válidas de esos conceptos.
  • El concepto hace referencia a una tabla de datos que apunta al archivo CSV que contiene los datos reales. Se hace referencia a la tabla de datos de la siguiente manera: <table ref="countries_table"/>.

    Si tu concepto hace referencia a una tabla, el archivo de datos asociado debe enumerar todas las instancias del concepto. Por ejemplo, no puedes crear una tabla que solo enumere algunos de los países incluidos en el conjunto de datos. Si hay un subconjunto de países que te interesan, puedes crear un concepto independiente para describirlos. como mycountries).

Elementos

Elemento ¿Es obligatoria? Descripción
<concepts> Elemento de nivel superior. Incluye todos los elementos <concept>.
<concept> Identifica el concepto. El valor del atributo obligatorio id debe ser único para el concepto dentro del conjunto de datos. Si el concepto hace referencia a una tabla de datos de conceptos, el valor de id debe coincidir con el encabezado de la columna que describe el concepto en la tabla de datos. Se puede usar un atributo extends para indicar que este concepto extiende a otro concepto. El valor de extends debe coincidir con el ID de un concepto definido en el mismo conjunto de datos, o debe tener el formato prefix:concept_id, en el que concept_id es el ID de un concepto definido en el conjunto de datos externo importado asociado a prefix.
<info> Opcional Incluye información descriptiva sobre el concepto.
<name> Secundario de <info> El nombre del concepto. El elemento secundario <value> contiene el texto, por ejemplo, Country.
<description> Opcional Secundario de <info> Incluye el elemento secundario <value>, que incluye una descripción del texto del concepto.
<url> Opcional Secundario de <info> Incluye el elemento secundario <value>, que incluye una URL para el concepto.
<pluralName> Opcional Secundario de <info> El nombre plural del concepto. El elemento secundario <value> contiene el texto, por ejemplo, Countries.
<totalName> Opcional Secundario de <info> El nombre de la combinación de todas las instancias del concepto. El elemento secundario <value> contiene el texto; en el caso de un concepto country, por ejemplo, podría ser World.
<type> Opcional Identifica el tipo de contenido que describe el concepto. El atributo obligatorio ref tiene los siguientes valores permitidos:
  • string
  • float
  • integer
  • fecha
  • boolean
Es posible que se omita el tipo si el concepto extiende otro concepto, en cuyo caso se hereda del concepto extendido.
<property> Opcional

Una propiedad del concepto, como capital. El valor del atributo obligatorio id debe ser único para el concepto. Se puede usar un atributo concept opcional para indicar que los valores de esta propiedad son instancias de un concepto determinado. Si se especifica concept, se puede omitir id; su valor se define de forma implícita como el ID del concepto al que se hace referencia (p.ej., <property concept="geo:country"/> es equivalente a <property id="country" concept="geo:country"/>).

Una propiedad puede contener un atributo booleano isParent para indicar que la relación entre una instancia del concepto y el valor de esta propiedad es jerárquica.

Una propiedad puede contener un atributo booleano isMapping para indicar que hay una asignación 1-1 entre las instancias del concepto y los valores de la propiedad.

Una propiedad puede especificar una info y un type anidados, que se definen tal como son para un concepto. type es obligatorio si la propiedad no especifica un atributo concept y debe coincidir con el tipo del concepto al que se hace referencia.

<attribute> Opcional

Un atributo del concepto. Los atributos representan información adicional sobre el concepto (p.ej., El PBI es un porcentaje). El valor del atributo obligatorio id debe ser único para el concepto. Se puede usar un atributo concept opcional para indicar que los valores de este atributo son instancias de un concepto determinado. Si se especifica concept, se puede omitir id. Su valor se define de forma implícita como el ID del concepto al que se hace referencia. (P. ej., <attribute concept="unit:unit"/> es equivalente a <attribute id="unit" concept="unit:unit"/>.

Un atributo puede especificar una info y un type anidados, que se definen como para un concepto. type es obligatorio si el atributo no especifica un atributo concept y debe coincidir con el tipo del concepto al que se hace referencia.

<table> Opcional Identifica la tabla de datos que contiene los datos del concepto. El valor del atributo ref obligatorio debe coincidir con el ID de la tabla especificado en el elemento <table> relacionado.

Secciones

Descripción

Una porción es una combinación de conceptos para los que existen datos. Una porción contiene dos tipos de referencias de concepto: dimensiones y métricas. Una dimensión es un concepto que se usa para segmentar o filtrar tus datos. Por otro lado, una métrica describe el valor o los valores observados asociados con cada dato.

Por lo general, las dimensiones son categóricas, mientras que las métricas son valores numéricos no categóricos, que varían en el tiempo. Algunos ejemplos prototípicos de cada uno son los siguientes:

  • Dimensiones: País, estado, condado, región, año, mes, sexo, categoría de edad, segmento de la industria.
  • Métricas: Población, PIB, tasa de desempleo, alfabetización, ingresos, costo, precio

Ejemplo

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

A continuación, le mostramos cómo funciona este ejemplo.

  • Esta porción representa la población por país.
  • Tiene la métrica population, y las dimensiones country y year. Cada dimensión es un concepto ya definido en otro lugar. El concepto country y la métrica population existen en el mismo conjunto de datos que la porción actual y se hacen referencia a esto de la siguiente manera: concept="country".
  • El concepto year existe en la hora del conjunto de datos importado, que se identifica mediante el prefijo que se usó antes del nombre del concepto (year), de la siguiente manera: concept="time:year".
  • La porción hace referencia a una tabla de datos que apunta al archivo CSV que contiene los datos reales. Se hace referencia a la tabla de datos de la siguiente manera: <table ref="country_slice_table"/>. (Consulta la sección anterior para obtener información sobre cómo importar conjuntos de datos).

Nota: En general, el conjunto de datos será más flexible si mantienes las métricas al mínimo y, en cambio, creas dimensiones significativas. Por ejemplo, en lugar de crear las métricas Female Unemployment y Male Unemployment, crea la métrica única Unemployment y agrega la dimensión Gender que tiene las instancias Female y Male.

Elementos

Elemento ¿Es obligatoria? Descripción
<slices> Elemento de nivel superior. Incluye todos los elementos <slice>.
<slice> Opcional Identifica la porción. El valor del atributo obligatorio id debe ser único para la porción.
<dimension> Opcional Define una dimensión de la porción mediante una referencia a un concepto. El valor del atributo obligatorio concept debe coincidir de manera exacta con el ID único del concepto y usar un prefijo válido si el concepto pertenece a un conjunto de datos externo importado.
<metric> Opcional Define una métrica de la porción mediante una referencia a un concepto. El valor del atributo obligatorio concept debe coincidir de manera exacta con el ID único del concepto y usar un prefijo válido si el concepto pertenece a un conjunto de datos externo importado.
<table> Identifica la tabla de datos que contiene los datos de la porción. El valor del atributo ref obligatorio debe coincidir con el ID de la tabla especificado en el elemento <table> relacionado.
<mapDimension> Opcional Secundario de <table> Contiene los atributos concept y toColumn; el valor del primero es una dimensión en la porción y el valor del segundo es la columna de la tabla que corresponde al primero.
<mapMetric> Opcional Secundario de <table> Contiene los atributos concept y toColumn; el valor de la primera es una métrica en la porción y el valor de la segunda es la columna de la tabla que corresponde a la primera.

Tablas

Descripción

En la sección tables del archivo DSP, se identifican las tablas de datos incluidas en el conjunto de datos. Se puede hacer referencia a estas tablas por conceptos o por secciones. Cada elemento <table> especifica las columnas de las tablas y sus tipos, y apunta a un archivo CSV que contiene los datos de la tabla.

Ejemplo

<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>

A continuación, te mostramos cómo funciona esta muestra.

  • En esta muestra, se describe la tabla country_slice_table. La tabla tiene las columnas country, year y population.
  • Cada columna de la tabla tiene un ID único, definido por el atributo id. Este ID debe coincidir exactamente con el encabezado de columna adecuado del archivo de datos asociado.
  • El valor del atributo opcional type define el tipo de datos para cada columna.
  • El elemento <data> describe el archivo .csv real (country_slice.csv) que contiene los datos de la tabla. El formato de archivo siempre es csv.

Elementos

Elemento ¿Es obligatoria? Descripción
<tables> Elemento de nivel superior. Incluye todos los elementos <table>.
<table> Identifica la tabla. El valor del atributo obligatorio id debe ser único en la tabla.
<column> Opcional Secundario de <table> Información sobre una columna incluida en la tabla. Incluye los siguientes atributos:
  • id (obligatorio): Es el ID de la columna.
  • type (opcional): Es el tipo de datos de la información en la columna especificada. Los valores permitidos son los siguientes: string, float, integer, date o boolean.
<data> Opcional Secundario de <table> El archivo de datos al que hace referencia la tabla. Si el nombre del archivo tiene la forma de una URL (p.ej., http://...), el archivo se obtendrá a través del protocolo adecuado (HTTP, HTTPS o FTP); de lo contrario, un archivo con este nombre se debe empaquetar con el conjunto de datos. El valor del atributo obligatorio format siempre es csv. Aunque el atributo encoding es opcional, los archivos .csv deben estar codificados en UTF-8.

Temas

Descripción

Los temas clasifican los conceptos de manera jerárquica, lo que permite a los usuarios navegar por el conjunto de datos con mayor facilidad.

El elemento <topics> debería aparecer justo antes del elemento <concepts> en el archivo DSPL. (El orden de los elementos es importante y es posible que no puedas subir tu conjunto de datos si los elementos aparecen en el orden incorrecto). Para usar temas, haz referencia a ellos desde la definición del concepto.

Ejemplo

A continuación, se muestra un ejemplo de definición de tema:

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

Esta es una referencia de ejemplo sobre este tema desde un concepto:

<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>

Los temas se pueden anidar, y un concepto puede hacer referencia a más de un tema.

Definición del elemento

Elemento ¿Es obligatoria? Descripción
<topics> Elemento de nivel superior. Incluye todos los elementos <topic>.
<topic> Identifica el tema. El valor del atributo obligatorio id debe ser único para el conjunto de datos.
<info> Opcional Secundario de <topic> Incluye información sobre un tema.
<name> Opcional Secundario de <info> Su elemento secundario <value> especifica el nombre del tema.

Archivos de datos de DSPL

Además del archivo metadata XML, un conjunto de datos de DSPL también puede incluir uno o más archivos de datos en formato CSV. Cada archivo de datos admite una tabla en el conjunto de datos y se hace referencia a este en su sección <data>...</data>. En teoría, estos archivos y sus tablas asociadas se usan para representar definiciones de conceptos o datos en secciones. Cada uno de estos tipos de archivos de datos se describe con más detalle a continuación.

Ten en cuenta que, independientemente del propósito, todos los archivos de datos deben ser archivos de texto UTF-8 separados por comas (CSV). Los archivos deben contener solo texto sin formato, no HTML. Puedes crear los archivos de datos de forma manual, pero, en realidad, deberás masajear los datos en la herramienta que contiene la fuente de datos original (p.ej., una hoja de cálculo) o en el archivo exportado.

Los archivos se pueden empaquetar con el conjunto de datos o, si el nombre tiene la forma de una URL, y se obtiene a través de HTTP, HTTPS o FTP desde una fuente remota.

Archivos de datos de conceptos

Los archivos de datos de conceptos contienen información relevante para cada concepto. La definición del concepto usa el elemento <table> para hacer referencia a este archivo.

Ejemplo

A continuación, se muestra un ejemplo de una tabla para el concepto country definido con anterioridad:

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

A continuación, te mostramos cómo funciona este ejemplo:

  • A menos que se especifiquen las asignaciones, la primera línea del archivo de datos (encabezados de columna) debe coincidir exactamente con el ID de concepto y los ID de propiedad apropiados con los que se asocian los datos. Sin embargo, no es necesario que el orden de las columnas sea el mismo en el archivo de datos y en la tabla de conceptos. En este caso, la primera columna se asocia con el concepto country, y la segunda columna se asocia con la propiedad name.
  • Las columnas de propiedades son opcionales; si una propiedad no tiene una columna en la tabla, se supone que su valor no está definido para cada fila. En la tabla anterior, por ejemplo, se omiten las columnas para las propiedades latitude y longitude, por lo que los países no se podrán asignar.
  • Cada valor para el campo de ID del concepto (en este caso, country) debe ser único y no debe estar vacío (un campo vacío es uno con cero o solo caracteres de espacio en blanco).
  • Los valores de las propiedades que hacen referencia a otros conceptos deben estar vacíos o ser un valor válido del concepto al que se hace referencia.
  • Encerrar los valores entre comillas dobles es opcional, excepto cuando contienen comas, comillas dobles o caracteres de salto de línea.
  • Reemplaza una comilla doble literal que aparezca en un valor precediendo otra comilla doble.

Archivos de datos de Slice

Los archivos de datos de Slices contienen datos relevantes para cada segmento. La definición de los fragmentos usa el elemento <table ref="..."> para hacer referencia a la definición de <table>, que, a su vez, identifica este archivo.

Ejemplo

A continuación, se muestra un ejemplo de un archivo .csv que contiene los datos de la porción population_by_country descrita anteriormente:

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

A continuación, te mostramos cómo funciona:

  • El campo de la métrica es population. Los campos country y year son campos de dimensión.
  • Cada valor de un campo de dimensión no puede estar vacío. Esto incluye las dimensiones de tiempo. Los valores para los campos de métrica pueden estar vacíos. Un valor vacío no se representa con ningún carácter.
  • Cada encabezado de columna que hace referencia a un concepto (por ejemplo, el primer campo del ejemplo anterior hace referencia al concepto country) debe coincidir exactamente con el ID único del concepto en la definición del concepto.
  • Una combinación única de valores de dimensión, p.ej., AF, 2000, puede ocurrir solo una vez.
  • Las filas de la misma serie temporal (es decir, las filas que tienen la misma combinación de todos los valores de dimensión excepto las temporales) deben agruparse, aunque no es necesario ordenarlas de otra manera.

Funciones avanzadas

Conjuntos de datos en varios idiomas

Valores XML traducidos

Puedes usar el atributo xml:lang con cada elemento <value> en tu archivo DSPL. Este atributo especifica el idioma del contenido del elemento mediante las etiquetas de idioma estándar W3C. Ten en cuenta que el uso de esta función es opcional; si no se incluye un atributo xml:lang, se supone que el contenido está en inglés.

En el siguiente ejemplo, se muestran las partes de un conjunto de datos que está en inglés, búlgaro, catalán y chino simplificado:

<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>

Propiedades traducidas

En algunos casos, es posible que desees proporcionar traducciones que vayan más allá de los metadatos de nivel de concepto y que, además, se agreguen (o, en su lugar) instancias de conceptos individuales. Esto es particularmente útil cuando los valores de una propiedad de concepto (p.ej., nombre) varían según el idioma.

A fin de proporcionar esos valores en varios idiomas, crea una columna en la tabla de definición correspondiente para cada combinación de propiedad y idioma. Luego, vincula estas columnas a sus propiedades y lenguajes asociados. Para ello, agrega un conjunto de elementos <mapProperty xml:lang="..." ref="..." toColumn="..."> a la etiqueta de referencia de la tabla del concepto.

A continuación, se incluye un ejemplo que define un concepto de país con nombres en inglés, español y francés:

<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>

El archivo CSV para countries_table tendría el siguiente formato:

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

Conceptos asignables

Muchos conceptos (por ejemplo, condado, estado y ciudad) tienen instancias que corresponden a ubicaciones geográficas. DSPL admite la codificación geográfica de estas instancias para que se puedan visualizar en el gráfico de mapa animado de datos públicos de Google.

Si tu concepto es igual a los países del mundo, los estados de EE.UU. o los condados de EE.UU., puedes vincular directamente al concepto canónico de Google correspondiente. No se requiere codificación geográfica explícita. Consulta la Guía de conceptos canónicos para obtener más detalles.

De lo contrario, debes hacer que tu concepto sea asignable. El primer paso es hacer que se extienda desde geo:location:

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

Luego, debes agregar explícitamente la latitud y la longitud como propiedades:

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

Los valores se especifican como columnas en la tabla de datos de definición de conceptos correspondiente.

Relaciones de conceptos

A menudo, los conceptos se relacionan con otros conceptos de manera estructurada. Por ejemplo, una instancia de continente puede incluir varias instancias de país, que, a su vez, pueden contener varias instancias de estado o provincia. La codificación de estas relaciones en los metadatos del conjunto de datos permite obtener funciones de visualización más completas de las que serían posibles, p.ej., mostrar un árbol contraíble de las ubicaciones que se puedan elegir.

En las siguientes secciones, describimos las relaciones de conceptos que se admiten en el esquema de DSP.

Jerarquías

Las jerarquías de conceptos se representan en DSP mediante el uso de un atributo isParent="true" en una etiqueta <property> del concepto secundario, que contiene identificadores de instancias del concepto superior.

A modo de ejemplo, el concepto de Google del condado de EE.UU. tiene la siguiente forma:

<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 tabla de datos de respaldo tiene una columna state con el código de estado de dos letras de cada condado. Este tipo de metadatos permite que Public Data Explorer muestre estados y condados como jerarquía, una función que facilita mucho la exploración a los usuarios.

Ten en cuenta que un concepto puede tener muchos elementos secundarios, pero no más de un elemento superior.

Asignaciones

Las asignaciones de conceptos (es decir, los conceptos que representan, básicamente, lo mismo) se representan mediante un atributo isMapping="true" en una etiqueta property del concepto asignado.

Especificar que un concepto se asigne a otro permite que el primero herede todas las propiedades y los atributos del segundo. Entre otras aplicaciones, esto es útil para "vincular" conceptos geográficos personales con aquellos definidos en el conjunto de datos geográficos canónicos 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>
  

Extensiones

Las extensiones de conceptos se designan mediante un elemento extends en la definición de concepto correspondiente. Las extensiones son útiles para indicar que un concepto en particular es una subclase de otro concepto más amplio. El concepto extendido hereda todos los atributos y propiedades de su superior, y también puede agregar otros.

A modo de ejemplo, el concepto currency de Google extiende 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>
  

Consulta el debate sobre las extensiones de conceptos en el instructivo para obtener más explicaciones y ejemplos.

Envía tu conjunto de datos

Para enviar tu conjunto de datos a Google Public Data Explorer, sigue estas instrucciones:

  1. Crea un directorio.
  2. Guarda el archivo dspl del conjunto de datos en el directorio que creaste. Asegúrate de usar la extensión .xml.
  3. Guarda los archivos .csv locales en el mismo directorio. Se pueden omitir los archivos de datos a los que se hace referencia mediante las URL.
  4. Comprime el directorio en un archivo ZIP.
  5. Sube el conjunto de datos a Google Public Data Explorer.

Una vez que se suba y valide tu conjunto de datos, podrás probarlo cuando accedas a tu Cuenta de Google. No se publicará hasta que lo revises y nos indiques que está listo.