Guida per gli sviluppatori DSPL

DSPL è l'acronimo di Dataset Publishing Language. È un formato di rappresentazione per entrambi i campi metadata (informazioni sul set di dati, come le nome e provider, nonché i concetti che contiene e mostra) e dati effettivi di set di dati. I set di dati descritti in questo formato possono essere importati in Google Public Data Spazio di esplorazione, uno strumento che permette di esplorare visivamente e in modo approfondito e i dati di Google Cloud.

Nota: per caricare i dati su Google Public Data. Tramite lo strumento di caricamento dei dati pubblici, devi avere un Account Google.

Questo documento è rivolto ai proprietari dei dati che vogliono che i loro contenuti siano disponibili in Public Data Explorer. Va oltre il tutorial approfondendo i dettagli dello schema DSPL e delle funzionalità supportate. Solo una familiarità di base di XML, sebbene sia anche la conoscenza dei database relazionali utile.

Sebbene non sia un requisito, ti consigliamo di seguire il tutorial, che è più breve e più facile da assimilare, prima di esaminare questo documento.

Panoramica

Un set di dati DSPL è un file ZIP contenente un file XML e un set di file CSV . I file CSV sono semplici tabelle contenenti i dati del set di dati, mentre il file XML descrive i metadati del set di dati. Quest'ultimo include metadati informativi come descrizioni di misure e metadati strutturali come riferimenti tra tabelle. Questi metadati consente agli utenti non esperti di esplorare e visualizzare i tuoi dati.

Processo

In generale, il processo di creazione di un set di dati DSPL è il seguente (alcuni passaggi possono avvenire in parallelo):

  1. Crea il file XML DSPL.
  2. Identifica le origini dati esterne da utilizzare nel set di dati.
  3. Definisci i concetti, le sezioni e (facoltativamente) gli argomenti. In modo iterativo aggiorna il contenuto del file DSPL.
  4. Esporta i dati di origine in file .csv.
  5. Creare un set di dati DSPL.
  6. Invia il set di dati a Google.

Struttura XML

Panoramica

Il file XML DSPL definisce i metadati del set di dati, tra cui relazioni strutturali tra concetti, sezioni, argomenti e tabelle. Sebbene sia possibile creare il file manualmente, gli strumenti di elaborazione dei dati e gli script possono semplificare notevolmente il processo. Visualizza un esempio di file DSPL in un nuovo finestra.

Il file include una serie di sezioni, che vengono riassunte nella tabella. di seguito. Seguendo la tabella, descriviamo i primi due in maggior dettaglio.

Sezione Riepilogo Ulteriori informazioni
Intestazione e importazioni Il padre per tutti gli altri elementi del set di dati. Include: spazio dei nomi target (ovvero, identificatore) per il set di dati, insieme allo di qualsiasi set di dati importato. Documentazione
Informazioni sul set di dati Nome, descrizione e URL del set di dati. Documentazione
Informazioni sul fornitore Nome, descrizione e URL del fornitore del set di dati. Documentazione
Concetti

Definizioni di "cose" che compaiono nel set di dati (ad es. paesi, tasso di disoccupazione, genere ecc.)

Ogni concetto ha un identificatore univoco, al quale può fare riferimento sezioni e tabelle.

Documentazione
Sezioni

Combinazioni di concetti per i quali esistono dati statistici nel del set di dati. Ogni sezione contiene dimensioni e metriche.

Suddividi i concetti di riferimento e anche le tabelle contenenti e i dati di Google Cloud. Ogni sezione ha un identificatore univoco a cui può fare riferimento il contenenti i dati effettivi.

Documentazione
Tabelle Definisci i dati per concetti e sezioni. Blocco delle tabelle concettuali le enumerazioni e le tabelle delle sezioni contengono dati statistici. Le tabelle sono definite nel file XML e puntare ai file .csv contenenti i dati effettivi. Documentazione
Argomenti Categorie per l'organizzazione dei concetti dei set di dati. Sebbene non siano obbligatori, questi può essere molto utile per gli utenti che navigano nei dati. Documentazione

Intestazione e importazioni

Dichiarazione dello spazio dei nomi Public Data

Un set di dati DSPL inizia con un elemento <dspl> di primo livello. Viene utilizzato per racchiudere tutte le informazioni del set di dati e per indicare qualsiasi utilizzati in tutto il file. Ecco un esempio:

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

Uno spazio dei nomi è un identificatore univoco che può essere associato a un Schema XML (un insieme di elementi e attributi XML). La targetNamespace fornisce un URI che identifica il set di dati. Questo URI non è necessario per puntare a una risorsa effettiva, ma è una buona l'idea di risolvere l'URI in un documento che descriva i tuoi contenuti oppure del set di dati.

Non è necessario fornire un targetNamespace. Se non lo fai, ne verrà generato automaticamente uno al momento dell'importazione nel tempo.

L'attributo targetNamespace è seguito da una serie di Attributi xmlns che specificano altri schemi XML che verranno utilizzati nel file. Ogni file DSPL deve includere lo schema Google Public Data, il cui URI è "http://schemas.google.com/dspl/2010" e usalo come lo spazio dei nomi predefinito. Deve includere anche lo schema XML W3 standard identificato da "http://www.w3.org/2001/XMLSchema-instance". Come descritti nella prossima sezione, è possibile aggiungere altri spazi dei nomi per includere le informazioni da altri set di dati.

Importazione di altri spazi dei nomi del set di dati

I set di dati possono riutilizzare le definizioni e i dati di altri set di dati. Google, per , fornisce una serie di set di dati di base che definiscono concetti comunemente visualizzati nei dati utente. Ad esempio, la maggior parte dei set di dati richiede un concetto rappresentano gli anni. Anziché definire un nuovo concetto, puoi usare l'anno da "http://www.google.com/publicdata/dataset/time" del set di dati. Vedi la sezione Canonical Concetti per saperne di più.

Per utilizzare un set di dati esterno, aggiungi l'elemento <import> a il file DSPL subito dopo la dichiarazione dello spazio dei nomi e indica la che stai importando, nel seguente modo:

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

Quindi, aggiungi lo spazio dei nomi importato (in questo caso, time="http://www.google.com/publicdata/dataset/google/time" alla dichiarazione dello spazio dei nomi nella parte superiore del file, in questo modo:

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

Il file DSPL ora può fare riferimento a elementi di Google Public Data set di dati temporali. Ripeti questo processo per ogni set di dati a cui vuoi fare riferimento.

Fare riferimento a contenuti in set di dati esterni

Dopo aver importato un altro set di dati, devi poter fare riferimento concetti, sezioni e dati da quel set di dati. A questo scopo, puoi utilizzare riferimenti del formato prefix:other_id, dove prefix è il prefisso utilizzato per lo spazio dei nomi del un set di dati esterno.

Ecco un esempio di un riferimento al concetto year da il set di dati time (descritto sopra):

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

Informazioni sul set di dati

L'elemento <info> include informazioni descrittive. sul set di dati. Un esempio e i dettagli degli elementi XML pertinenti sono elencati di seguito.

Esempio

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

Elementi

Elemento Obbligatorio? Descrizione
<info> Racchiude tutte le informazioni descrittive sul set di dati. Include gli elementi secondari <name>, <description> e <url>.
<name> Secondario di <info>. Include l'elemento secondario <value>, che identifica il nome dell'account del set di dati.
<description> Facoltativo Secondario di <info>. Include l'elemento secondario <value>, che include una descrizione testuale del del set di dati.
<url> Secondario di <info>. Un link a un URL con ulteriori informazioni sul set di dati.

Informazioni sul fornitore

L'elemento <provider> elenca informazioni sull'elemento da un provider del set di dati. Un esempio e i dettagli degli elementi XML pertinenti sono elencati di seguito.

Esempio

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

Elementi

Elemento Obbligatorio? Descrizione
<provider> Racchiude tutte le informazioni descrittive sul fornitore del set di dati. Include gli elementi secondari <name> e <url>.
<name> Facoltativo Secondario di <provider>. Include l'elemento secondario <value>, che identifica il nome del set di dati o il provider di servizi di terze parti.
<url> Facoltativo Secondario di <info>. Un link a un URL con altro le informazioni sul fornitore del set di dati.

Concetti

Descrizione

Ogni set di dati contiene uno o più concetti. Un concetto è un di un tipo di dati che compaiono in un set di dati. Un set di dati con I dati demografici sulla popolazione, ad esempio, potrebbero avere i concetti paese, stato, popolazione e anno. I valori dei dati corrispondenti a un dato concetto sono chiamate istanze di tale concetto. I concetti sono sono generalmente descritti nel set di dati, ma alcuni concetti (ad esempio ora o anno) possono essere descritti in set di dati esterni.

Ogni concetto può avere una o più proprietà. Una proprietà è una caratteristica di un'istanza concettuale stabile nel tempo. Ad esempio: il concetto di paese potrebbe avere le proprietà name, population e capital.

I concetti possono anche avere uno o più attributi. Gli attributi offrono informazioni a livello di concetto, non di singole istanze. Per Ad esempio, se avessimo un set di dati con un concetto di tasso di disoccupazione, potremmo usare un attributo per indicare che questo concetto è una percentuale. Un altro esempio di uso comune degli attributi è la definizione di unità di informazioni.

Esempio

Ecco un esempio di concetto di paese con l'ID univoco country e la proprietà name. L'ID concetto può essere utilizzato per fare riferimento al concetto da sezioni e tabelle.

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

Ecco come funziona questo codice di esempio.

  • Questo codice descrive il concetto di paese, con l'ID. country e le proprietà name, continent e capital.
  • Il concetto estende geo:location, il concetto canonico per di località. Estendendo geo:location, country eredita tutte le proprietà e gli attributi definiti dal concetto esteso: nome, descrizione, URL, latitudine e longitudine delle proprietà. Buono di country per ridefinire alcuni di questi attributi proprietà, purché la definizione sia coerente con quella fornita dal concetto esteso.
  • L'elemento <info> del concetto descrive la chiave informazioni sul concetto. Viene visualizzato nel set di dati pagina di destinazione in Public Data Explorer.
  • L'elemento concettuale <type> si riferisce al tipo di contenuti. In questo caso si tratta di una stringa, ma potrebbe variare. Il concetto La popolazione è di tipo integer; il concetto Eurovision winner può avere il tipo booleano.
  • Un elemento <property> descrive ogni proprietà dell'elemento di Google, incluso l'ID univoco (id), info e type. Le proprietà possono anche fare riferimento a concetti, indicano che i loro valori sono istanze valide di questi concetti.
  • Il concetto fa riferimento a una tabella di dati che indica al file CSV contenente i dati effettivi. Viene fatto riferimento alla tabella di dati nel seguente modo: <table ref="countries_table"/>.

    Se il concetto fa riferimento a una tabella, il file di dati associato deve elencare tutte le istanze del concetto. Non puoi, ad esempio, creare una tabella che elenca solo alcuni dei paesi inclusi nel set di dati. (Se è un sottoinsieme dei paesi che ti interessano, puoi creare un insieme concetto per descriverli. ad esempio mycountries.

Elementi

Elemento Obbligatorio? Descrizione
<concepts> Elemento di primo livello. Include tutti i valori <concept> elementi.
<concept> Identifica il concetto. Il valore dell'attributo obbligatorio id deve essere univoco per il concetto all'interno del set di dati. Se il concetto fa riferimento a una tabella di dati concettuali, il valore di id deve corrispondere all'intestazione di colonna che descrive il concetto in la tabella dei dati. Un attributo extends può essere utilizzato per indicare che questo concetto estende un altro concetto. Il valore di extends deve corrispondere all'ID di un concetto definito nello stesso set di dati o avere la forma prefix:concept_id, dove concept_id è l'ID di un concetto definito nella set di dati esterno associato a prefix.
<info> Facoltativo Racchiude informazioni descrittive sul concetto.
<name> Secondario di <info>. Il nome del concetto. La l'elemento secondario <value> contiene il testo - per ad esempio Country.
<description> Facoltativo Secondario di <info>. Include l'elemento secondario <value>, che include una descrizione testuale del concetto.
<url> Facoltativo Secondario di <info>. Include l'elemento secondario <value>, che include un URL per concetto.
<pluralName> Facoltativo Secondario di <info>. Il nome plurale per concetto. L'elemento secondario <value> contiene il testo ad esempio Countries.
<totalName> Facoltativo Secondario di <info>. Il nome della combinazione tutte le istanze del concetto. L'elemento secondario <value> contiene il testo- nel caso di un valore country di base, ad esempio World.
<type> Facoltativo Identifica il tipo di contenuti descritto dal concetto. Il campo obbligatorio L'attributo ref ha i seguenti valori consentiti:
  • stringa
  • numero in virgola mobile
  • integer
  • data
  • booleano
Il tipo può essere omesso se estende un altro concetto, nel qual caso viene ereditato dal concetto esteso.
<property> Facoltativo

Una proprietà del concetto, ad esempio capital. Il valore dell'attributo obbligatorio id deve essere univoco per il concetto. È possibile utilizzare un attributo concept facoltativo per indicano che i valori di questa proprietà sono istanze di un concetto. Se concept è specificato, allora id può essere omesso; il suo valore è implicitamente definito come ID del concetto di riferimento (ad es. <property concept="geo:country"/> equivale a <property id="country" concept="geo:country"/>).

Una proprietà può contenere un attributo isParent booleano, per indicare che la relazione tra un'istanza del concetto e il valore di questa proprietà è gerarchico.

Una proprietà può contenere un attributo isMapping booleano, per indicare che esiste una mappatura 1:1 tra le istanze del concetto e i valori della proprietà.

Una proprietà può specificare un elemento info nidificato e type, definiti così come lo sono per un concetto. type è obbligatorio se la proprietà non specifica un concept e deve corrispondere al tipo dell'attributo concetto a cui viene fatto riferimento.

<attribute> Facoltativo

Un attributo del concetto. Gli attributi rappresentano informazioni sul concetto (ad es. il PIL è una percentuale). Il valore dell'attributo obbligatorio id deve essere univoco per il concetto. È possibile utilizzare un attributo concept facoltativo per indicano che i valori di questo attributo sono istanze di un concetto. Se concept è specificato, allora id potrebbero essere omesse. Il suo valore è implicitamente definito come l'ID del concetto a cui viene fatto riferimento. (ad es. <attribute concept="unit:unit"/> equivale a <attribute id="unit" concept="unit:unit"/>.

Un attributo può specificare un elemento info nidificato e type, che sono definiti come per un concetto. type è obbligatorio se l'attributo non specifica un concept e deve corrispondere al tipo dell'attributo concetto a cui viene fatto riferimento.

<table> Facoltativo Identifica la tabella contenente i dati per il concetto. La il valore dell'attributo obbligatorio ref deve corrispondere a quello della tabella ID specificato nell'elemento <table> correlato.

Sezioni

Descrizione

Una sezione è una combinazione di concetti per cui esistono dati. Una sezione contiene due tipi di riferimenti concettuali: dimensioni e metriche. Una dimensione è un concetto utilizzato per segmentare o filtrare i tuoi dati. Una metrica, invece, descrive il valore osservato o associati a ciascun punto dati.

In genere, le dimensioni sono categoriche, mentre le metriche non sono categoriche, valori numerici che variano nel tempo. Alcuni esempi prototipici di ciascuno sono che segue:

  • Dimensioni: paese, stato, contea, regione, anno, mese, genere, categoria di età, segmento di settore
  • Metriche: popolazione, PIL, tasso di disoccupazione, alfabetizzazione. entrate, costo, prezzo

Esempio

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

Ecco come funziona questo codice di esempio.

  • Questa sezione rappresenta la popolazione per paese.
  • Ha la metrica population e le dimensioni country e year. Ogni dimensione è un concetto sono già definite altrove. Il concetto country e la metrica population esistono nello stesso set di dati della sezione corrente e hanno riferimenti nel seguente modo: concept="country"
  • Il concetto year esiste nell'ora del set di dati importato, identificati dal prefisso utilizzato prima del nome del concetto (year), nel seguente modo: concept="time:year"
  • La sezione fa riferimento a una tabella di dati che punta al file CSV contenente i dati effettivi. Alla tabella di dati viene fatto riferimento nel seguente modo: <table ref="country_slice_table"/>. (Vedi sopra per informazioni sull'importazione set di dati.

Nota: in generale, il set di dati sarà flessibile se mantieni le metriche al minimo e invece crei nomi significativi dimensioni. Ad esempio, invece di creare le metriche Female Unemployment e Male Unemployment, crea la metrica singola Unemployment e aggiungi la dimensione Gender con le istanze Female e Male,

Elementi

Elemento Obbligatorio? Descrizione
<slices> Elemento di primo livello. Include tutti i valori <slice> elementi.
<slice> Facoltativo Identifica la sezione. Il valore dell'attributo obbligatorio id deve essere univoco per la sezione.
<dimension> Facoltativo Definisce una dimensione della sezione, facendo riferimento a un concetto. La il valore dell'attributo obbligatorio concept deve corrispondere esattamente l'ID univoco del concetto e utilizza un prefisso valido se il concetto appartiene a un set di dati esterno importato.
<metric> Facoltativo Definisce una metrica della sezione, facendo riferimento a un concetto. Il valore dell'attributo obbligatorio concept deve corrispondere esattamente ai ID univoco del concetto e utilizza un prefisso valido se il concetto appartiene in un set di dati esterno importato.
<table> Identifica la tabella contenente i dati della sezione. Il valore dell'attributo obbligatorio ref deve corrispondere all'ID tabella specificato nell'elemento <table> correlato.
<mapDimension> Facoltativo Secondario di <table>. Contiene gli attributi concept e toColumn; il valore del primo è della sezione e il valore del secondo è la colonna della tabella corrispondenti al primo.
<mapMetric> Facoltativo Secondario di <table>. Contiene gli attributi concept e toColumn; il valore del primo è una metrica nella sezione, con il valore del secondo è la colonna della tabella corrispondenti al primo.

Tabelle

Descrizione

La sezione tables del file DSPL identifica i dati incluse nel set di dati. È possibile fare riferimento a queste tabelle per concetti o per sezioni. Ogni elemento <table> specifica le colonne le tabelle e i relativi tipi e punta a un file CSV contenente la tabella e i dati di Google Cloud.

Esempio

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

Ecco come funziona questo codice di esempio.

  • In questo esempio viene descritta la tabella country_slice_table. La tabella ha le colonne country, year e population.
  • Ogni colonna della tabella ha un ID univoco, definito dal Attributo id. Questo ID deve corrispondere esattamente al codice nel file di dati associato.
  • Il valore dell'attributo facoltativo type definisce i dati tipo di colonna.
  • L'elemento <data> descrive il file .csv effettivo (country_slice.csv) contenente i dati per la tabella. Il formato file è sempre csv.

Elementi

Elemento Obbligatorio? Descrizione
<tables> Elemento di primo livello. Include tutti i valori <table> elementi.
<table> Identifica la tabella. Il valore dell'attributo obbligatorio id deve essere univoco per la tabella.
<column> Facoltativo Secondario di <table>. Informazioni su una colonna incluse nella tabella. Include i seguenti attributi:
  • id (obbligatorio): l'ID della colonna.
  • (Facoltativo) type: il tipo di dati delle informazioni nella colonna specificata. I valori consentiti sono: string, float, integer, date o boolean.
<data> Facoltativo Secondario di <table>. Il file di dati a cui fa riferimento nella tabella. Se il nome del file è sotto forma di URL (ad es. http://...), il file verrà recuperato tramite protocollo appropriato (HTTP, HTTPS o FTP); altrimenti un file con questo nome devono essere associati al set di dati. Il valore dell'attributo obbligatorio format è sempre csv. Sebbene l'attributo encoding è facoltativo, i file .csv devono avere codifica UTF-8.

Argomenti

Descrizione

Gli argomenti classificano i concetti in modo gerarchico, consentendo agli utenti di spostarsi tramite il tuo set di dati.

L'elemento <topics> dovrebbe apparire subito prima di <concepts> nel file DSPL. (L'ordine di è importante e potresti non riuscire a caricare il set di dati se vengono visualizzati nell'ordine errato). Per utilizzare gli argomenti, consultali nel definizione del concetto.

Esempio

Ecco un esempio di definizione di argomento:

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

...ed ecco un esempio di riferimento a questo argomento partendo da un concetto:

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

Gli argomenti possono essere nidificati e un concetto può fare riferimento a più argomenti.

Definizione dell'elemento

Elemento Obbligatorio? Descrizione
<topics> Elemento di primo livello. Include tutti i valori <topic> elementi.
<topic> Identifica l'argomento. Il valore dell'attributo obbligatorio id deve essere univoco per il set di dati.
<info> Facoltativo Secondario di <topic>. Contiene informazioni su un per ogni argomento.
<name> Facoltativo Secondario di <info>. L'elemento secondario <value> specifica il nome dell'argomento.

File di dati DSPL

Oltre al file XML metadata, un set di dati DSPL può anche Includi uno o più file di dati in formato CSV. Ogni file di dati supporta una tabella nel set di dati e viene fatto riferimento al precedente Sezione <data>...</data>. Concettualmente, questi file e le relative tabelle associate sono utilizzate per rappresentare concetto definizioni o dati sezione. Ciascuno di questi tipi di file di dati descritti più dettagliatamente di seguito.

Tieni presente che, indipendentemente dallo scopo, tutti i file di dati devono essere File di testo UTF-8 delimitato da virgole (CSV). I file devono contenere solo testo; senza HTML. Puoi creare i file di dati manualmente, ma realisticamente dovrà massaggiare i dati nello strumento contenente i dati originali origine (ad es. un foglio di lavoro) o nello stesso file esportato.

I file possono essere raggruppati con il set di dati oppure, se il nome è sotto forma di URL, recuperato tramite HTTP, HTTPS o FTP da una sorgente remota.

File di dati sui concetti

I file di dati concettuali contengono informazioni pertinenti per ogni concetto. La utilizza l'elemento <table> per fare riferimento a questo file.

Esempio

Ecco un esempio di tabella per il concetto country definita sopra:

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

Ecco come funziona questo esempio:

  • A meno che non siano specificate mappature, la prima riga del file di dati (colonna ) devono corrispondere esattamente all'ID concetto e alla proprietà appropriata ID del concetto a cui sono associati i dati. Tuttavia, l'ordine colonne non devono essere uguali nel file di dati e concettuale. In questo caso, la prima colonna è associata al parametro concetto country e la seconda colonna è associata al proprietà name.
  • Le colonne delle proprietà sono facoltative; se una proprietà non ha una colonna nella tabella, si presume che il suo valore non sia definito per ogni riga. La nella tabella precedente, ad esempio, omette le colonne per latitude e longitude proprietà, quindi i paesi non saranno mappabili.
  • Ogni valore per il campo ID del concetto (in questo caso, country) deve essere univoco e non vuoto (un campo vuoto corrisponde a uno con zero o solo spazi vuoti).
  • I valori delle proprietà che fanno riferimento ad altri concetti devono essere vuoto o essere un valore valido del concetto a cui viene fatto riferimento.
  • Racchiudi i valori tra virgolette è facoltativo, tranne quando contenere virgole, virgolette doppie o caratteri di nuova riga.
  • Esegui l'escape di una virgoletta doppia letterale visualizzata in un valore facendola precedere con un'altra virgoletta doppia.

Sezione dei file di dati

I file di dati delle sezioni contengono dati pertinenti per ogni sezione. Sezione definizione utilizza l'elemento <table ref="..."> per fare riferimento alla definizione di <table>, che a sua volta identifica questo file.

Esempio

Di seguito è riportato un esempio di un file .csv contenente i dati relativi alla Sezione population_by_country descritta sopra:

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

Ecco come funziona l'esempio:

  • Il campo della metrica è population. I campi country e year sono campi dimensione.
  • Ogni valore di un campo dimensione non deve essere vuoto. Sono incluse le ore dimensioni. I valori dei campi delle metriche possono essere vuoti. Un valore vuoto è rappresentato da nessun carattere.
  • Ogni intestazione di colonna che fa riferimento a un concetto (ad esempio, il primo dell'esempio precedente fa riferimento al concetto country) deve corrispondono esattamente all'ID univoco del concetto nella definizione del concetto.
  • Una combinazione unica di valori di dimensione, ad esempio AF, 2000, possono verificarsi una sola volta.
  • Righe nella stessa serie temporale (ovvero righe con la stessa combinazione di tutti i valori di dimensione, tranne il tempo) devono essere raggruppati insieme, anche se non devono essere ordinati in altro modo.

Funzionalità avanzate

Set di dati multilingue

Valori XML tradotti

Puoi utilizzare l'attributo xml:lang con ogni <value> nel file DSPL. Questo attributo specifica la lingua dei contenuti dell'elemento, utilizzando lo standard, W3C dei tag di lingua. Tieni presente che l'utilizzo di questa funzione è facoltativo; In caso contrario L'attributo xml:lang è incluso, si presume che i contenuti siano in Inglese.

L'esempio seguente mostra gli snipet di un set di dati in inglese, Bulgaro, catalano e cinese semplificato:

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

Proprietà tradotte

In alcuni casi, potresti fornire traduzioni che vanno oltre di metadati a livello concettuale, che vengono applicati in aggiunta (o invece) ai singoli più istanze del concetto. Ciò è particolarmente utile quando i valori di un concetto (ad es. il nome) varia a seconda della lingua.

Per fornire questi valori in più lingue, crea una colonna in la tabella di definizione corrispondente per ogni combinazione proprietà/lingua. Poi collega queste colonne alle rispettive proprietà e lingue associate aggiunta di un insieme di elementi <mapProperty xml:lang="..." ref="..." toColumn="..."> alla tabella di riferimento per il concetto.

Ecco un esempio che definisce un concetto di paese con nomi in inglese: Spagnolo e francese:

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

Il file CSV per countries_table conterrà quindi modulo seguente:

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

Concetti mappabili

Molti concetti (ad esempio contea, stato e città) hanno istanze corrispondenti a posizioni geografiche. DSPL supporta la geocodifica di queste istanze in modo che siano visualizzabili Grafico mappa animato di Google Public Data.

Se il tuo concetto è equivalente ai paesi del mondo, agli stati USA o agli Stati Uniti contee, puoi collegarti ai contenuti canonici di Google concetto; non è richiesta alcuna geocodifica esplicita. Per ulteriori informazioni, consulta la Guida ai concetti canonici i dettagli.

In caso contrario, devi rendere il tuo concept mappabile. Il primo passaggio consiste nel eseguine l'estensione da geo:location:

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

Quindi, devi aggiungere esplicitamente latitudine e longitudine come proprietà:

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

I valori corrispondenti vengono quindi specificati come colonne nel una tabella di dati sulla definizione dei concetti.

Relazioni concettuali

Spesso i concetti sono correlati ad altri in modo strutturato. Per Un'istanza continente può includere più istanze di istanze di paesi, che a loro volta possono contenere di stato o provincia. Codifica di questi le relazioni nei metadati del set di dati consentono una visualizzazione più completa rispetto a quelle che sarebbero altrimenti possibili, ad es. mostrare un albero comprimibile più località tra cui scegliere.

Nelle sezioni seguenti vengono descritte le relazioni concettuali supportate in lo schema DSPL.

Gerarchie

Le gerarchie concettuali sono rappresentate in DSPL tramite l'uso di una Attributo isParent="true" in un <property> del concetto secondario, che contiene identificatori delle istanze dal concetto padre.

Ad esempio, il concetto di contea statunitense di Google ha la modulo seguente:

<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 tabella dei dati di supporto ha una colonna state con codice dello stato di due lettere per ogni contea. Questo tipo di metadati consente Public Data Explorer per mostrare stati e contee come gerarchia, una funzionalità che semplifica molto l'esplorazione per gli utenti.

Tieni presente che un concetto può avere molti elementi secondari, ma non più di uno. principale.

Mappature

Mappature concettuali (ovvero concetti che rappresentano, fondamentalmente, lo stesso ) sono rappresentate da un isMapping="true" in un tag property del concetto mappato.

Specificare che un concetto è mappato a un altro consente al primo di ereditare tutte le proprietà e gli attributi di quest'ultimo. Tra le altre applicazioni, Questa funzionalità è utile per i "link" concetti geografici personali Quelli definiti nel set di dati geografici canonico di 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>
  

Estensioni

Le estensioni concettuali sono designate tramite un elemento extends nella definizione concettuale corrispondente. Le estensioni sono utili per indicare che un particolare concetto è una sottoclasse di un altro concetto più ampio. La il concetto esteso eredita tutti gli attributi e le proprietà dell'elemento padre, e puoi aggiungerne altri.

Ad esempio, il concetto currency di Google si 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>
  

Leggi la discussione sul concetto nel tutorial per ulteriori spiegazioni ed esempi.

Invio del set di dati

Per inviare il tuo set di dati a Google Public Data Explorer, segui questi passaggi: istruzioni:

  1. Crea una directory.
  2. Salva il file dspl del set di dati nella directory che hai creato. Assicurati di usa l'estensione .xml.
  3. Salva tutti i file .csv locali nella stessa directory. I file di dati a cui viene fatto riferimento tramite gli URL.
  4. Comprimi la directory.
  5. Carica il tuo set di dati in Google Public Data Spazio di esplorazione.

Dopo aver caricato e convalidato il set di dati, puoi testarlo dopo averlo firmato al tuo Account Google. Non verrà pubblicato finché non avrai selezionato e dirci che è pronto.