Guia do desenvolvedor de DSPL

DSPL significa linguagem de publicação de conjunto de dados. É um formato de representação para os metadados (informações sobre o conjunto de dados, como nome e provedor, bem como os conceitos que ele contém e exibe) e os dados reais dos conjuntos de dados. Os conjuntos de dados descritos nesse formato podem ser importado para o banco de dados Google Public Data Explorer, uma ferramenta que permite uma exploração visual e rica dos dados.

Observação: para fazer o upload de dados para o Google Public Data usar a ferramenta de upload de dados públicos, é preciso ter uma Conta do Google.

Este documento é destinado aos proprietários de dados que desejam que seu conteúdo seja disponíveis no Explorador de Dados Públicos. Ele vai além do Tutorial e se aprofunda nos detalhes do esquema DSPL e dos recursos compatíveis. Apenas um conhecimento básico de XML é presumido, embora o conhecimento de bancos de dados relacionais também seja úteis.

Embora não seja um requisito, sugerimos a leitura do Tutorial, que é mais curto e mais fácil de entender antes de ler este documento.

Visão geral

Um conjunto de dados DSPL é um arquivo ZIP que contém um arquivo XML e um conjunto de CSV . Os arquivos CSV são tabelas simples que contêm os dados do conjunto de dados, enquanto o arquivo XML descreve os metadados do conjunto de dados. O último inclui metadados informativos, como descrições de medidas, bem como metadados estruturais, como referências entre tabelas. Esses metadados permite que usuários não especialistas explorem e visualizem seus dados.

Processo

Em geral, o processo de criação de um conjunto de dados DSPL é o seguinte (algumas etapas podem ocorrer em paralelo):

  1. Crie seu arquivo XML DSPL.
  2. Identifique as fontes de dados externas para usar no conjunto de dados.
  3. Defina conceitos, frações e, opcionalmente, tópicos. Iterativamente atualize o conteúdo do seu arquivo DSPL.
  4. Exporte os dados de origem para arquivos .csv.
  5. Criar um conjunto de dados DSPL.
  6. Envie o conjunto de dados ao Google.

Estrutura XML

Visão geral

O arquivo XML DSPL define os metadados do conjunto de dados, incluindo relações estruturais entre conceitos, frações, tópicos e tabelas. Embora seja possível criar esse arquivo manualmente, as ferramentas de processamento de dados e scripts pode simplificar muito o processo. Confira um exemplo de arquivo DSPL em uma nova Janela.

O arquivo inclui várias seções, que estão resumidas na tabela a seguir. Após a tabela, descrevemos cada um dos primeiros de forma detalhes.

Seção Resumo Mais informações
Cabeçalho e importações O pai de todos os outros elementos do conjunto de dados. Inclui o namespace de destino (ou seja, identificador) para o conjunto de dados, junto com o namespaces de todos os conjuntos de dados importados. Documentação
Informações do conjunto de dados O nome, a descrição e o URL do conjunto de dados. Documentação
Informações do provedor O nome, a descrição e o URL do provedor do conjunto de dados. Documentação
Conceitos

Definições de "coisas" que aparecem no conjunto de dados (por exemplo, países, taxa de desemprego, gênero etc.)

Cada conceito tem um identificador exclusivo, que pode ser referenciado pelo frações e tabelas.

Documentação
Fatias

Combinações de conceitos para os quais há dados estatísticos no no conjunto de dados. Cada fatia contém dimensões e métricas.

Conceitos de referência de frações e também tabelas, que contêm o dados. Cada fração tem um identificador único que pode ser referenciado pelo que contêm os dados reais.

Documentação
Tabelas Defina os dados para conceitos e frações. As tabelas de conceito mantêm enumerações e tabelas de fração contêm dados estatísticos. As tabelas estão definidas no arquivo XML e apontar para os arquivos .csv que contêm os dados reais. Documentação
Temas Categorias para organizar conceitos do conjunto de dados. Embora não sejam obrigatórios, eles pode ser muito útil para os usuários que navegam pelos dados. Documentação

Cabeçalho e importações

Como declarar o namespace de dados públicos

Um conjunto de dados DSPL começa com um elemento <dspl> de nível superior. É usado para incluir todas as informações do conjunto de dados e para indicar os namespaces que serão usados no arquivo. Confira um exemplo:

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

Um namespace é um identificador exclusivo que pode ser associado a um Esquema XML (um conjunto de elementos e atributos XML). A targetNamespace fornece um URI que identifica seu conjunto de dados. Esse URI não precisa apontar para um recurso real, mas é uma boa ideia de fazer com que o URI seja resolvido para um documento que descreva seu conteúdo ou no conjunto de dados.

Não é necessário fornecer um targetNamespace. Se você não fizer isso, ele será gerado automaticamente na importação tempo de resposta.

O atributo targetNamespace é seguido por uma série de Atributos xmlns especificando outros esquemas XML que serão usados no arquivo. Todo arquivo DSPL deve incluir o esquema de dados públicos do Google, com URI "http://schemas.google.com/dspl/2010" e usá-lo como o namespace padrão. Ele também precisa incluir o esquema XML W3 padrão. identificado por "http://www.w3.org/2001/XMLSchema-instance". Conforme descritos na próxima seção, outros namespaces podem ser adicionados para incluir informações de outros conjuntos de dados.

Como importar outros namespaces de conjuntos de dados

Os conjuntos de dados podem reutilizar definições e dados de outros conjuntos de dados. O Google, por fornece vários conjuntos de dados básicos que definem conceitos comumente que aparecem nos dados do usuário. Por exemplo, a maioria dos conjuntos de dados precisa de um conceito representam anos. Em vez de definir um novo conceito, você pode usar o modelo do conceito do site "http://www.google.com/publicdata/dataset/time" no conjunto de dados. Consulte a documentação Conceitos para mais informações.

Para usar um conjunto de dados externo, adicione o elemento <import> ao arquivo DSPL logo após a declaração do espaço de nomes e indique o que você está importando, da seguinte forma:

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

Em seguida, adicione o namespace importado (neste caso, time="http://www.google.com/publicdata/dataset/google/time") a declaração de namespace na parte superior do arquivo, da seguinte forma:

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

Seu arquivo DSPL agora pode fazer referência a elementos do Google Public Data conjunto de dados de tempo. Repetir esse processo para cada conjunto de dados que você quer referenciar.

Como fazer referência a conteúdo em conjuntos de dados externos

Depois de importar outro conjunto de dados, você precisa fazer referência conceitos, frações e dados desse conjunto de dados. Para fazer isso, você pode usar referências do formato prefix:other_id, em que prefix é o prefixo usado para o namespace da em um conjunto de dados externo.

Confira um exemplo de referência ao conceito year no conjunto de dados time (descrito acima):

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

Informações do conjunto de dados

O elemento <info> inclui informações descritivas sobre o conjunto de dados. Um exemplo e detalhes sobre os elementos XML relevantes são listadas abaixo.

Exemplo

<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 Obrigatório? Descrição
<info> Sim Inclui todas as informações descritivas sobre o conjunto de dados. Inclui os elementos filhos <name>, <description> e <url>.
<name> Sim Filho de <info>. Inclui o elemento filho <value>, que identifica o nome do no conjunto de dados.
<description> Opcional Filho de <info>. Inclui o elemento filho <value>, que inclui uma descrição em texto do no conjunto de dados.
<url> Sim Filho de <info>. Um link para um URL com mais informações sobre o conjunto de dados.

Informações do provedor

O elemento <provider> lista informações sobre o provedor de conjunto de dados. Um exemplo e detalhes sobre os elementos XML relevantes são listadas abaixo.

Exemplo

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

Elementos

Elemento Obrigatório? Descrição
<provider> Sim Inclui todas as informações descritivas sobre o provedor do conjunto de dados. Inclui os elementos filhos <name> e <url>.
<name> Opcional Filho de <provider>. Inclui o elemento filho <value>, que identifica o nome do conjunto de dados de nuvem.
<url> Opcional Filho de <info>. Um link para um URL com mais informações sobre o provedor do conjunto de dados.

Conceitos

Descrição

Cada conjunto de dados contém um ou mais conceitos. Um conceito é um a definição de um tipo de dados que aparece em um conjunto de dados. Um conjunto de dados com por exemplo, dados demográficos da população, poderia ter os conceitos país, estado, população e ano. Os valores de dados que correspondem a um um determinado conceito são chamadas de instâncias desse conceito. Os conceitos são geralmente descritos no conjunto de dados, mas alguns conceitos (como hora ou ano) podem ser descritos em conjuntos de dados externos.

Cada conceito pode ter uma ou mais propriedades. Uma propriedade é um característica de uma instância de conceito estável ao longo do tempo. Por exemplo: o conceito de país pode ter as propriedades name, population e capital.

Os conceitos também podem ter um ou mais atributos. Os atributos fornecem informações no nível do conceito, não nas instâncias individuais. Para Por exemplo, se tivéssemos um conjunto de dados com um conceito de taxa de desemprego, poderíamos usar um atributo para designar que esse conceito é uma porcentagem. Outro exemplo de uso comum de atributos é fornecer atributos informações imprecisas ou inadequadas.

Exemplo

Este é um exemplo de conceito de país com o ID exclusivo country e a propriedade name. O ID do conceito pode ser usada para referenciar o conceito de frações e tabelas.

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

Veja como esse exemplo funciona.

  • Esse código descreve o conceito de país, que tem o ID country e as propriedades name, continent e capital.
  • O conceito estende geo:location, o conceito canônico para locais. Ao estender geo:location, country herda todas as propriedades e atributos definidos pelo conceito estendido: nome, descrição, URL, latitude e longitude das propriedades. Bom para que country redefina alguns desses atributos e desde que a definição seja consistente com a fornecida pelo conceito estendido.
  • O elemento de conceito <info> descreve a chave informações sobre o conceito. Ele é exibido no conjunto de dados página inicial no Explorador de Dados Públicos.
  • O conceito <type> do elemento se refere ao tipo conteúdo. Nesse caso, é uma string, mas isso pode variar. Conceito A população teria o tipo integer. o conceito Eurovision winner pode ter o tipo booleano.
  • Um elemento <property> descreve cada propriedade do , incluindo seu ID exclusivo (id), info e type. As propriedades também podem fazer referência a conceitos, indicam que os valores são instâncias válidas desses conceitos.
  • O conceito faz referência a uma tabela de dados que aponta ao arquivo CSV que contém os dados reais. A tabela de dados é referenciada assim: <table ref="countries_table"/>.

    Caso seu conceito faça referência a uma tabela, o arquivo de dados associado deve listar todas as instâncias do conceito. Não é possível, por exemplo, criar uma tabela que lista apenas alguns dos países incluídos no conjunto de dados. Se houver é um subconjunto de países importantes para você, é possível criar uma conceito para descrevê-los. Por exemplo, mycountries.

Elementos

Elemento Obrigatório? Descrição
<concepts> Sim Elemento de nível superior. Inclui todos os <concept> os elementos.
<concept> Sim Identifica o conceito. O valor do atributo obrigatório id precisa ser exclusivo para o conceito no conjunto de dados. Se o conceito faz referência a uma tabela de dados conceituais, o valor da id precisa corresponder ao título da coluna que descreve o conceito em na tabela de dados. Um atributo extends pode ser usado para indicar que esse conceito estende outro conceito. O valor de extends precisa corresponder ao ID de um conceito definido no mesmo conjunto de dados ou estar no formato prefix:concept_id, em que concept_id é o ID de um conceito definido no arquivo conjunto de dados externo associado a prefix.
<info> Opcional Inclui informações descritivas sobre o conceito.
<name> Sim Filho de <info>. O nome do conceito. A o elemento filho <value> contém o texto "- for" exemplo: Country.
<description> Opcional Filho de <info>. Inclui o elemento filho <value>, que inclui uma descrição em texto do conceito.
<url> Opcional Filho de <info>. Inclui o elemento filho <value>, que inclui um URL do conceito.
<pluralName> Opcional Filho de <info>. O nome plural da conceito. O elemento filho <value> contém o texto Por exemplo: Countries.
<totalName> Opcional Filho de <info>. O nome da combinação de todas as instâncias do conceito. O elemento filho <value> contém o texto, no caso de uma country por exemplo, pode ser World.
<type> Opcional Identifica o tipo de conteúdo descrito pelo conceito. O campo O atributo ref tem os seguintes valores permitidos:
  • string
  • float
  • número inteiro
  • data
  • booleano
O tipo pode ser omitido se o conceito estender outro conceito, Nesse caso, ele é herdado do conceito estendido.
<property> Opcional

Uma propriedade do conceito, como capital. O valor do atributo obrigatório id precisa ser exclusivo para o conceito. Um atributo concept opcional pode ser usado para indicam que os valores desta propriedade são instâncias de um determinado conceito. Se concept for especificado, então id podem ser omitidos; seu valor é definido implicitamente como o ID do conceito referenciado (por exemplo, <property concept="geo:country"/> é equivalente a <property id="country" concept="geo:country"/>).

Uma propriedade pode conter um atributo booleano isParent, para indicar que a relação entre uma instância do conceito e o valor dessa propriedade é hierárquico.

Uma propriedade pode conter um atributo booleano isMapping, para indicar que há um mapeamento 1-1 entre as instâncias do e os valores da propriedade.

Uma propriedade pode especificar um info aninhado e type, que são definidos exatamente como são para um conceito. type será obrigatório se a propriedade não especificar um concept e precisa corresponder ao tipo do o conceito mencionado, se isso acontecer.

<attribute> Opcional

Um atributo do conceito. Os atributos representam informações sobre o conceito (por exemplo, O PIB é uma porcentagem). O valor do atributo obrigatório id precisa ser exclusivo para o conceito. Um atributo concept opcional pode ser usado para indicam que os valores deste atributo são instâncias de um determinado conceito. Se concept for especificado, então id podem ser omitidos. Seu valor é definido implicitamente como o ID do conceito referenciado. (por exemplo, <attribute concept="unit:unit"/> é equivalente a <attribute id="unit" concept="unit:unit"/>.

Um atributo pode especificar um info aninhado e type, que são definidos exatamente como para um conceito. type será obrigatório se o atributo não especificar um concept e precisa corresponder ao tipo do o conceito mencionado, se isso acontecer.

<table> Opcional Identifica a tabela que contém os dados do conceito. A o valor do atributo ref obrigatório precisa corresponder à tabela ID especificado no elemento <table> relacionado.

Slices

Descrição

Uma fração é uma combinação de conceitos para os quais existem dados. Uma fração contém dois tipos de referências de conceito: dimensões e métricas. Uma dimensão é um conceito usado para segmentar ou filtrar seus dados. Uma métrica, por outro lado, descreve o valor observado ou valores associados a cada ponto de dados.

Em geral, as dimensões são categóricas, enquanto as métricas são não categóricas, valores numéricos que variam com o tempo. Alguns exemplos prototipados de cada uma são da seguinte forma:

  • Dimensões: país, estado, condado, região, ano, mês, gênero, categoria de idade, segmento do setor
  • Métricas: população, PIB, taxa de desemprego, alfabetização, receita, custo, preço

Exemplo

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

Veja como esse exemplo funciona.

  • Essa fração representa a população por país.
  • Ela tem a métrica population, e as dimensões country e year. Cada dimensão é um conceito já definido em outro lugar. O conceito country e a métrica population existem no mesmo conjunto de dados que a fração atual, e são referenciadas assim: concept="country"
  • O conceito year existe no horário do conjunto de dados importado, identificada pelo prefixo usado antes do nome do conceito (year), assim: concept="time:year"
  • A fração faz referência a uma tabela de dados que aponta para o arquivo CSV que contêm os dados reais. A tabela de dados é referenciada desta forma: <table ref="country_slice_table"/>: Veja acima para informações sobre como importar conjuntos de dados.

Observação: em geral, seu conjunto de dados será mais flexível se você minimizar as métricas e, em vez disso, criar dimensões. Por exemplo, em vez de criar as métricas Female Unemployment e Male Unemployment, crie a métrica única Unemployment e adicione a dimensão Gender que tem as instâncias Female e Male.

Elementos

Elemento Obrigatório? Descrição
<slices> Sim Elemento de nível superior. Inclui todos os <slice> os elementos.
<slice> Opcional Identifica a fração. O valor do atributo obrigatório id precisa ser exclusivo da fração.
<dimension> Opcional Define uma dimensão da fatia, referenciando um conceito. A o valor do atributo obrigatório concept precisa corresponder exatamente o ID exclusivo do conceito e use um prefixo válido se o conceito pertence a um conjunto de dados importado externo.
<metric> Opcional Define uma métrica da fatia, referenciando um conceito. O valor do atributo obrigatório concept precisa corresponder exatamente ao ID exclusivo do conceito e usar um prefixo válido se o conceito pertencer a para um conjunto de dados externo importado.
<table> Sim Identifica a tabela de dados que contém os dados da fração. O valor do atributo ref obrigatório precisa corresponder ao ID da tabela especificado no elemento <table> relacionado.
<mapDimension> Opcional Filho de <table>. Contém os atributos concept e toColumn. o valor do primeiro é um na fatia, e o valor da segunda é a coluna da tabela correspondente ao primeiro.
<mapMetric> Opcional Filho de <table>. Contém os atributos concept e toColumn. o valor do primeiro é uma métrica na fração, e o valor do segundo é a coluna da tabela correspondente ao primeiro.

Tabelas

Descrição

A seção tables do arquivo DSPL identifica os dados incluídas no conjunto de dados. Essas tabelas podem ser referenciadas por conceitos ou por fatias. Cada elemento <table> especifica as colunas de as tabelas e seus tipos e aponta para um arquivo CSV contendo a tabela dados.

Exemplo

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

Veja como este exemplo funciona.

  • Este exemplo descreve a tabela country_slice_table. A tabela tem as colunas country, year e population
  • Cada coluna na tabela tem um ID exclusivo, definido pela id. Esse ID deve corresponder exatamente ao ID cabeçalho da coluna no arquivo de dados associado.
  • O valor do atributo opcional type define os dados para cada coluna.
  • O elemento <data> descreve o arquivo .csv real (country_slice.csv) que contém os dados da tabela. O formato do arquivo é sempre csv.

Elementos

Elemento Obrigatório? Descrição
<tables> Sim Elemento de nível superior. Inclui todos os <table> os elementos.
<table> Sim Identifica a tabela. O valor do atributo obrigatório id precisa ser exclusivo da tabela.
<column> Opcional Filho de <table>. Informações sobre uma coluna incluídas na tabela. Inclui os seguintes atributos:
  • id (obrigatório): o ID da coluna.
  • type (opcional): o tipo de dados das informações. na coluna especificada. Os valores permitidos são: string, float, integer, date ou boolean.
<data> Opcional Filho de <table>. O arquivo de dados referenciado pelo na tabela. Se o nome do arquivo estiver na forma de um URL (por exemplo, http://...), o arquivo será buscado pelo protocolo apropriado (HTTP, HTTPS ou FTP); caso contrário, um arquivo com este nome precisa estar no pacote do conjunto de dados. O valor do atributo obrigatório format é sempre csv. Embora o atributo encoding é opcional, seus arquivos .csv devem ser codificados em UTF-8.

Tópicos

Descrição

Os tópicos classificam conceitos hierarquicamente, permitindo que os usuários naveguem ao longo do conjunto de dados com mais facilidade.

O elemento <topics> deve aparecer logo antes do <concepts> no arquivo DSPL. (A ordem é importante, e você pode não conseguir carregar seu conjunto de dados se seus os elementos apareçam na ordem incorreta. Para usar os tópicos, consulte-os no definição de conceito.

Exemplo

Veja um exemplo de definição de tópico:

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

...e aqui está uma referência de exemplo a esse tópico a partir de um conceito:

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

Os tópicos podem ser aninhados e um conceito pode fazer referência a mais de um tópico.

Definição do elemento

Elemento Obrigatório? Descrição
<topics> Sim Elemento de nível superior. Inclui todos os <topic> os elementos.
<topic> Sim Identifica o tópico. O valor do atributo obrigatório id precisa ser exclusivo para o conjunto de dados.
<info> Opcional Filho de <topic>. Inclui informações sobre um tópico.
<name> Opcional Filho de <info>. O elemento filho <value> especifica o nome do tópico.

Arquivos de dados DSPL

Além do arquivo de metadados XML, um conjunto de dados DSPL também pode inclua um ou mais arquivos de dados no formato CSV. Cada arquivo de dados suporta uma tabela no conjunto de dados e é referenciada a partir da primeira na sua Seção <data>...</data>. Conceitualmente, esses arquivos e suas tabelas associadas são usadas para representar o conceito definições ou dados de fração. Cada um desses tipos de arquivo de dados descritos em mais detalhes abaixo.

Independentemente da finalidade, todos os arquivos de dados devem ser arquivos de texto UTF-8 delimitados por vírgulas (CSV). Os arquivos devem conter apenas arquivos text. sem HTML. É possível criar os arquivos de dados manualmente, mas, na realidade, precisará aplicar os dados na ferramenta que contém os dados originais fonte (por exemplo, uma planilha) ou no próprio arquivo exportado.

Os arquivos podem ser agrupados com o conjunto de dados ou, se o nome estiver na forma de um arquivo URL buscado por HTTP, HTTPS ou FTP de uma fonte remota.

Arquivos de dados conceituais

Os arquivos de dados conceituais contêm informações relevantes para cada conceito. A definição de conceito usa o elemento <table> para se referir ao esse arquivo.

Exemplo

Confira um exemplo de tabela para o conceito country definido acima:

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

Veja como esse exemplo funciona:

  • A menos que os mapeamentos sejam especificados, a primeira linha do arquivo de dados (coluna cabeçalhos) devem corresponder exatamente ao ID do conceito e à propriedade adequada IDs do conceito ao qual os dados estão associados. No entanto, a ordem das colunas não precisa ser igual no arquivo de dados e o na tabela de conceitos. Nesse caso, a primeira coluna está associada ao conceito country, e a segunda coluna está associada ao propriedade name.
  • As colunas de propriedade são opcionais. quando uma propriedade não tem uma coluna na tabela, seu valor será considerado indefinido para cada linha. A a tabela acima, por exemplo, omite colunas para o latitude e longitude, portanto, os países não serão mapeáveis.
  • Cada valor para o campo de ID do conceito (neste caso, country) precisa ser exclusivo e não vazio (um campo vazio é um) com zero ou apenas caracteres de espaço em branco).
  • Os valores das propriedades que fazem referência a outros conceitos precisam ser vazio ou ser um valor válido do conceito em questão.
  • Inserir valores entre aspas duplas é opcional, exceto quando conter vírgulas, aspas duplas ou caracteres de nova linha.
  • Faz o escape de uma aspa dupla literal que aparece em um valor antes dela com outras aspas duplas.

Arquivos de dados de fração

Os arquivos de dados de fração contêm dados relevantes para cada fração. A fatia a definição usa o elemento <table ref="..."> para consulte a definição <table>, que identifica esse arquivo.

Exemplo

Aqui está um exemplo de um arquivo .csv contendo os dados para Fatia population_by_country descrita acima:

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

Veja como o exemplo funciona:

  • O campo de métrica é population. Os campos country e year são campos de dimensão.
  • Cada valor de um campo de dimensão não pode ficar em branco. Isso inclui tempo dimensões. Os valores dos campos de métricas podem ficar vazios. Um valor vazio é não representado por nenhum caractere.
  • Cada cabeçalho de coluna que faz referência a um conceito (por exemplo, o primeiro campo do exemplo acima faz referência ao conceito country) deve correspondem exatamente ao ID exclusivo do conceito na definição dele.
  • Uma combinação exclusiva de valores de dimensão, por exemplo, AF, 2000, pode ocorrer apenas uma vez.
  • Linhas na mesma série temporal (ou seja, linhas que têm a mesma combinação de todos os valores de dimensão, exceto tempo) devem ser agrupadas, embora não precisam ser classificados de outra forma.

Recursos avançados

Conjuntos de dados com várias linguagens

Valores XML traduzidos

É possível usar o atributo xml:lang com cada <value> no arquivo DSPL. Este atributo especifica o idioma do conteúdo do elemento, usando a especificação padrão, W3C tags de idioma. O uso desse recurso é opcional. caso contrário xml:lang está incluído, presume-se que o conteúdo esteja em inglês.

O exemplo a seguir mostra trechos de um conjunto de dados que está em inglês, Búlgaro, catalão e chinês 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>

Propriedades traduzidas

Em alguns casos, você pode querer fornecer traduções que vão além no nível conceitual, aplicando-se em adição (ou no lugar) a metadados individuais instâncias de conceito. Isso é muito útil quando os valores de um conceito propriedade (por exemplo, nome) varia de acordo com o idioma.

Para fornecer esses valores em vários idiomas, crie uma coluna em a tabela de definição correspondente para cada combinação de propriedade/idioma. Em seguida, vincule essas colunas às propriedades e linguagens associadas adicionar um conjunto de elementos <mapProperty xml:lang="..." ref="..." toColumn="..."> à tabela; tag de referência para o conceito.

Aqui está um exemplo que define o conceito de um país com nomes em inglês, Espanhol e 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>

O arquivo CSV para o countries_table teria então a seguinte formato:

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

Conceitos mapeáveis

Muitos conceitos (por exemplo: condado, estado e cidade) têm instâncias correspondentes a localizações geográficas. DSPL suporta a geocodificação dessas instâncias para que possam ser visualizadas no Gráfico de mapa animado do Google Public Data.

Se o conceito for equivalente a países, estados dos EUA ou países condados, basta criar um link para a página canônica do Google conceito não é necessária geocodificação explícita. Consulte o Guia de conceitos canônicos para mais informações detalhes.

Caso contrário, você precisa tornar seu conceito mapeável. A primeira etapa é que se estendam de geo:location:

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

Em seguida, você precisa adicionar explicitamente a latitude e longitude como propriedades:

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

Os valores delas são especificados como colunas no tabela de dados de definição de conceito.

Relacionamentos entre conceitos

Os conceitos são frequentemente relacionados a outros conceitos de forma estruturada. Para uma instância de continente pode incluir várias de países que, por sua vez, podem conter várias estados ou províncias. Codificá-los as relações nos metadados do conjunto de dados permite uma visualização mais rica atributos do que seria possível de outra forma, por exemplo, mostrar uma árvore recolhível de locais para escolher.

Nas seções abaixo, descrevemos as relações de conceito suportadas em o esquema DSPL.

hierarquias

As hierarquias de conceito são representadas em DSPL pelo uso de uma isParent="true" em um Tag <property> do conceito filho, que contém identificadores de instâncias do conceito pai.

Como exemplo, o conceito de condado dos EUA do Google tem o seguinte formato:

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

A tabela de dados de apoio tem uma coluna state com o código de estado de duas letras para cada condado. Esse tipo de metadados permite que Explorador de dados públicos para mostrar estados e condados como uma hierarquia, um elemento que facilita a análise detalhada para os usuários.

Um conceito pode ter vários filhos, mas não mais que um pai.

Mapeamentos

Mapeamentos de conceito (ou seja, conceitos que representam, fundamentalmente, os mesmos coisa) são representadas por uma isMapping="true" em uma tag property do conceito mapeado.

Especificar que um conceito é mapeado para outro permite que o primeiro herde todas as propriedades e atributos dos últimos. Entre outras aplicações, Isso é útil para "criar links" conceitos geográficos pessoais com aqueles definidos no conjunto de dados geográficos canônicos do 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>
  

Extensões

As extensões de conceito são designadas usando um elemento extends. na definição de conceito correspondente. As extensões são úteis para indicar que um conceito específico é uma subclasse de outro, mais amplo. A um conceito estendido herda todos os atributos e propriedades do pai, e também adicionar outros.

Por exemplo, o conceito currency do Google estende 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>
  

Consulte a discussão sobre conceito no tutorial para mais explicações e exemplos.

Como enviar seu conjunto de dados

Para enviar seu conjunto de dados ao Explorador de Dados Públicos do Google, siga estas instruções:

  1. Crie um diretório.
  2. Salve o arquivo DSpl do conjunto de dados no diretório criado. Não se esqueça de use a extensão .xml.
  3. Salve todos os arquivos .csv locais no mesmo diretório. Os arquivos de dados que são referenciadas por URLs podem ser omitidas.
  4. Compacte o diretório.
  5. Faça upload do seu conjunto de dados para o Google Public Data Explorador.

Depois que o conjunto de dados for carregado e validado, você poderá testá-lo quando assinado na sua Conta do Google. Ela não será publicada até que você verifique ele e dizer que está pronto.