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):
- Crie seu arquivo XML DSPL.
- Identifique as fontes de dados externas para usar no conjunto de dados.
- Defina conceitos, frações e, opcionalmente, tópicos. Iterativamente atualize o conteúdo do seu arquivo DSPL.
- Exporte os dados de origem para arquivos .csv.
- Criar um conjunto de dados DSPL.
- 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 propriedadesname
,continent
ecapital
. - O conceito estende
geo:location
, o conceito canônico para locais. Ao estendergeo:location
,country
herda todas as propriedades e atributos definidos pelo conceito estendido: nome, descrição, URL, latitude e longitude das propriedades. Bom para quecountry
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 tipointeger
. o conceitoEurovision winner
pode ter o tipo booleano. - Um elemento
<property>
descreve cada propriedade do , incluindo seu ID exclusivo (id
),info
etype
. 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:
|
<property> |
Opcional |
Uma propriedade do conceito, como Uma propriedade pode conter um atributo booleano Uma propriedade pode conter um atributo booleano Uma propriedade pode especificar um |
<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 Um atributo pode especificar um |
<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õescountry
eyear
. Cada dimensão é um conceito já definido em outro lugar. O conceitocountry
e a métricapopulation
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 colunascountry
,year
epopulation
- 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 é semprecsv
.
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:
|
<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 propriedadename
. - 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
elongitude
, 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 camposcountry
eyear
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:
- Crie um diretório.
- Salve o arquivo DSpl do conjunto de dados no diretório criado. Não se esqueça de use a extensão .xml.
- Salve todos os arquivos .csv locais no mesmo diretório. Os arquivos de dados que são referenciadas por URLs podem ser omitidas.
- Compacte o diretório.
- 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.