Panduan Developer DSPL

DSPL adalah singkatan dari {i>Dataset Publishing Language<i}. Model ini adalah format representasi untuk metadata (informasi tentang set data, seperti nama dan penyedia layanan, serta konsep yang dimuat di dalamnya dan tampilannya) dan data aktual dari set data. {i>Dataset<i} yang dijelaskan dalam format ini dapat diimpor ke Google Public Data Penjelajah, alat yang memungkinkan eksplorasi visual yang lengkap layanan otomatis dan data skalabel.

Catatan: Untuk mengupload data ke Google Public Data menggunakan alat upload Data Publik, Anda harus memiliki Akun Google.

Dokumen ini ditujukan untuk pemilik data yang ingin kontennya yang tersedia di Penjelajah Data Publik. Selain Tutorial, video ini dibuat lebih mendalam detail skema DSPL dan fitur yang didukung. Hanya dasar-dasar yang dipahami XML diasumsikan, meskipun pengetahuan tentang {i>database<i} relasional juga berguna

Meskipun bukan persyaratan, sebaiknya Anda membaca Tutorial, yang lebih singkat dan lebih mudah dicerna, sebelum melihat dokumen ini.

Ringkasan

Set data DSPL adalah file .zip yang berisi file XML dan satu set CSV . {i>File<i} CSV adalah tabel sederhana yang berisi data dari {i>dataset<i}, sedangkan file XML menjelaskan {i>metadata<i} dari {i>dataset<i} itu. Yang kedua mencakup metadata informasional seperti deskripsi tindakan, serta metadata struktural seperti referensi antar tabel. Metadata ini memungkinkan pengguna non-ahli untuk mengeksplorasi dan memvisualisasikan data Anda.

Proses

Secara umum, proses pembuatan set data DSPL adalah sebagai berikut (beberapa langkah-langkah dapat dilakukan secara paralel):

  1. Buat file XML DSPL.
  2. Identifikasi sumber data eksternal yang akan digunakan dalam set data Anda.
  3. Tentukan konsep, bagian, dan (secara opsional) topik. Secara iteratif memperbarui isi file DSPL.
  4. Ekspor data sumber ke file .csv.
  5. Membuat set data DSPL.
  6. Kirim set data ke Google.

Struktur XML

Ringkasan

File XML DSPL mendefinisikan metadata {i>dataset<i}, termasuk hubungan struktural antara konsep, potongan, topik, dan tabel. Meskipun file ini dapat dibuat secara manual, namun alat pemrosesan data dan skrip dapat sangat merampingkan proses. Lihat contoh file DSPL di file baru jendela.

{i>File<i} ini mencakup sejumlah bagian, yang diringkas di dalam tabel di bawah ini. Setelah tabel, kami menggambarkan masing-masing {i>database<i} secara lebih umum spesifikasi pendukung.

Bagian Ringkasan Info Selengkapnya
Header dan Impor Induk untuk semua elemen set data lainnya. Mencakup target namespace (yaitu, ID) untuk set data, bersama dengan setiap set data yang diimpor. Dokumentasi
Informasi Set Data Nama, deskripsi, dan URL set data. Dokumentasi
Informasi Penyedia Nama, deskripsi, dan URL penyedia set data. Dokumentasi
Konsep

Definisi "objek" yang muncul dalam set data (misalnya, negara, tingkat pengangguran, gender, dll.)

Setiap konsep memiliki pengidentifikasi unik, yang dapat dirujuk oleh {i>slices<i} dan tabel.

Dokumentasi
Slice

Kombinasi konsep yang tidak memiliki data statistik di {i>dataset<i} aslinya. Setiap irisan berisi dimensi dan metrik.

Konsep referensi Slice, dan juga tabel, yang berisi elemen layanan otomatis dan data skalabel. Setiap irisan memiliki pengidentifikasi unik yang bisa dirujuk oleh tabel yang berisi data aktual.

Dokumentasi
Tables Menentukan data untuk konsep dan irisan. Tabel konsep disimpan enumerasi dan tabel irisan menyimpan data statistik. Tabel ditentukan di file XML, dan arahkan kursor ke file .csv yang berisi data aktual. Dokumentasi
Topik Kategori untuk mengatur konsep set data. Meskipun tidak diperlukan, dapat sangat membantu pengguna saat menavigasi data Anda. Dokumentasi

Header dan Impor

Mendeklarasikan namespace Data Publik

Set data DSPL dimulai dengan elemen <dspl> tingkat atas. Ini digunakan untuk melampirkan semua informasi {i>dataset<i} dan menunjukkan setiap namespace yang akan digunakan di seluruh file. Berikut contohnya:

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

Namespace adalah ID unik yang dapat dikaitkan dengan Skema XML (serangkaian elemen dan atribut XML). Tujuan targetNamespace menyediakan URI yang mengidentifikasi set data Anda. URI ini tidak diperlukan untuk mengarah ke resource yang sebenarnya, tetapi ini sudah bagus ide untuk membuat URI me-resolve ke dokumen yang menjelaskan konten Anda atau {i>dataset<i} aslinya.

Anda tidak perlu memberikan targetNamespace. Jika Anda tidak, maka satu kode akan dibuat secara otomatis untuk Anda saat pengimporan baik.

Atribut targetNamespace diikuti dengan serangkaian Atribut xmlns yang menentukan skema XML lain yang akan digunakan dalam file. Setiap file DSPL harus menyertakan skema Google Public Data, dengan URI "http://schemas.google.com/dspl/2010" dan menggunakannya sebagai namespace default. Salinan ini juga harus menyertakan skema XML W3 standar yang diidentifikasi oleh "http://www.w3.org/2001/XMLSchema-instance". Sebagai dijelaskan di bagian berikutnya, namespace lain dapat ditambahkan untuk menyertakan informasi dari {i>dataset<i} lain.

Mengimpor namespace set data lain

Set data dapat menggunakan kembali definisi dan data dari set data lain. Google, untuk menyediakan sejumlah set data dasar yang mendefinisikan konsep secara umum muncul dalam data pengguna. Misalnya, sebagian besar {i>dataset <i}membutuhkan konsep untuk mewakili tahun. Alih-alih mendefinisikan konsep baru, Anda dapat menggunakan tahun konsep dari "http://www.google.com/publicdata/dataset/time" {i>dataset<i} aslinya. Lihat Konten Kanonis Concepts untuk informasi selengkapnya.

Untuk menggunakan set data eksternal, tambahkan elemen <import> ke file DSPL tepat setelah deklarasi namespace, dan menunjukkan ruang data yang Anda impor, seperti ini:

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

Kemudian, tambahkan namespace yang diimpor (dalam kasus ini, time="http://www.google.com/publicdata/dataset/google/time") ke deklarasi namespace di bagian atas file Anda, seperti ini:

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

File DSPL Anda sekarang dapat mereferensikan elemen dari Data Publik Google set data waktu. Berulang proses ini untuk setiap {i>dataset <i}yang ingin Anda rujuk.

Mereferensikan konten dalam {i>dataset<i} eksternal

Setelah mengimpor {i>dataset<i} lain, Anda harus dapat merujuk konsep, irisan, dan data dari {i>dataset<i} tersebut. Untuk melakukannya, Anda dapat menggunakan referensi format prefix:other_id, dengan prefix adalah awalan yang digunakan untuk namespace {i>dataset<i} eksternal.

Berikut adalah contoh referensi ke konsep year dari set data time (dijelaskan di atas):

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

Informasi Set Data

Elemen <info> menyertakan informasi deskriptif tentang {i>dataset <i}tersebut. Contoh dan detail tentang elemen XML yang relevan yang tercantum di bawah ini.

Contoh

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

Elemen

Elemen Wajib? Deskripsi
<info> Ya Mencakup semua informasi deskriptif tentang {i>dataset<i}. Menyertakan elemen turunan <name>, <description>, dan <url>.
<name> Ya Turunan dari <info>. Menyertakan elemen turunan <value>, yang mengidentifikasi nama {i>dataset<i} aslinya.
<description> Opsional Turunan dari <info>. Menyertakan elemen turunan <value>, yang menyertakan deskripsi teks dari {i>dataset<i} aslinya.
<url> Ya Turunan dari <info>. Link ke URL yang berisi informasi lainnya informasi tentang {i>dataset<i}.

Informasi Penyedia

Elemen <provider> mencantumkan informasi tentang penyedia set data Anda. Contoh dan detail tentang elemen XML yang relevan yang tercantum di bawah ini.

Contoh

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

Elemen

Elemen Wajib? Deskripsi
<provider> Ya Menyertakan semua informasi deskriptif tentang penyedia {i>dataset<i}. Menyertakan elemen turunan <name> dan <url>.
<name> Opsional Turunan dari <provider>. Menyertakan elemen turunan <value>, yang mengidentifikasi nama set data penyedia layanan.
<url> Opsional Turunan dari <info>. Link ke URL yang berisi lainnya informasi tentang penyedia {i>dataset<i}.

Konsep

Deskripsi

Setiap set data berisi satu atau beberapa konsep. Konsep adalah definisi jenis data yang muncul di {i>dataset<i}. Sebuah {i>dataset<i} dengan data populasi demografis, misalnya, dapat memiliki negara, negara bagian, populasi, dan tahun. Nilai data yang sesuai dengan konsep tertentu disebut instance dari konsep tersebut. Konsep adalah biasanya dijelaskan dalam {i>dataset<i}, tetapi beberapa konsep (seperti waktu atau tahun) dapat dijelaskan dalam set data eksternal.

Setiap konsep dapat memiliki satu atau beberapa properti. Properti adalah karakteristik dari instance konsep yang stabil dari waktu ke waktu. Misalnya, konsep negara dapat memiliki properti name, population, dan capital.

Konsep juga dapat memiliki satu atau beberapa atribut. Atribut menyediakan informasi pada tingkat konsep, bukan setiap kejadiannya. Sebagai misalnya, jika kita memiliki {i>dataset <i}dengan konsep tingkat pengangguran, kita dapat menggunakan atribut untuk menunjukkan bahwa konsep ini adalah persentase. Contoh lain dari penggunaan atribut yang umum adalah untuk menyediakan tidak akurat atau tidak sesuai.

Contoh

Berikut ini contoh konsep negara dengan ID unik country, dan properti name. ID konsep dapat berupa yang digunakan untuk mereferensikan konsep dari irisan dan tabel.

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

Berikut adalah cara kerja contoh tersebut.

  • Kode ini menjelaskan konsep negara, yang memiliki ID country dan properti name, continent, dan capital.
  • Konsep ini memperluas geo:location, konsep kanonis untuk lokasi. Dengan memperluas geo:location, country mewarisi semua properti dan atribut yang ditentukan oleh konsep yang diperluas: nama properti, deskripsi, url, lintang dan bujur. Lumayan agar country dapat menentukan ulang beberapa atribut dan selama definisi tersebut konsisten dengan yang diberikan, oleh konsep yang diperluas.
  • Elemen <info> konsep menjelaskan kunci informasi tentang konsep. Info ini ditampilkan pada {i>landing page<i} di Penjelajah Data Publik.
  • Elemen <type> konsep mengacu pada jenis saat ini. Dalam hal ini berupa string, tetapi bisa bervariasi. Konsep Populasi akan memiliki jenis integer; konsep Eurovision winner dapat memiliki jenis boolean.
  • Elemen <property> mendeskripsikan setiap properti termasuk ID uniknya (id), info, dan type. Properti juga dapat mereferensikan konsep, untuk menunjukkan bahwa nilai mereka adalah instance yang valid dari konsep-konsep tersebut.
  • Konsep ini merujuk ke tabel data yang menunjukkan ke {i>file<i} CSV yang berisi data aktual. Tabel data direferensikan seperti ini: <table ref="countries_table"/>.

    Jika konsep Anda mereferensikan tabel, file data terkait harus mencantumkan semua instance konsep. Anda tidak dapat, misalnya, membuat tabel yang hanya mencantumkan beberapa negara yang dimasukkan dalam {i>dataset <i}itu. (Jika ada merupakan subkumpulan negara yang penting bagi Anda, Anda dapat membuat konsep yang tepat untuk menggambarkannya. Misalnya, mycountries.)

Elemen

Elemen Wajib? Deskripsi
<concepts> Ya Elemen tingkat atas. Mencakup semua <concept> yang kurang penting.
<concept> Ya Mengidentifikasi konsep. Nilai atribut yang diperlukan id harus unik untuk konsep dalam set data. Jika konsep tersebut merujuk ke sebuah tabel data konsep, nilai dari id harus cocok dengan judul kolom yang menjelaskan konsep di dari tabel data. Atribut extends dapat digunakan untuk menunjukkan bahwa konsep ini memperluas konsep lainnya. Nilai dari extends harus cocok dengan ID konsep yang ditentukan dalam set data, atau dalam bentuk prefix:concept_id, dengan concept_id adalah ID konsep yang ditentukan dalam file yang diimpor set data eksternal yang terkait dengan prefix.
<info> Opsional Menyertakan informasi deskriptif tentang konsep.
<name> Ya Turunan dari <info>. Nama konsep. Tujuan elemen turunan <value> berisi teks - untuk contoh, Country.
<description> Opsional Turunan dari <info>. Menyertakan elemen turunan <value>, yang menyertakan deskripsi teks dari konsep.
<url> Opsional Turunan dari <info>. Menyertakan elemen turunan <value>, yang menyertakan URL untuk konsep.
<pluralName> Opsional Turunan dari <info>. Nama jamak untuk konsep. Elemen turunan <value> berisi teks - misalnya, Countries.
<totalName> Opsional Turunan dari <info>. Nama untuk kombinasi semua instance konsep. Elemen turunan <value> berisi text- dalam kasus country , misalnya, ini mungkin World.
<type> Opsional Mengidentifikasi jenis konten yang dijelaskan oleh konsep. Diperlukan atribut ref memiliki nilai yang diizinkan berikut:
  • string
  • float
  • bilangan bulat
  • tanggal
  • boolean
Jenis ini dapat dihilangkan jika konsep memperluas konsep lain, dalam hal ini diwarisi dari konsep yang diperluas.
<property> Opsional

Properti konsep, seperti capital. Nilainya dari atribut id wajib unik untuk konsep. Atribut concept opsional dapat digunakan untuk menunjukkan bahwa nilai properti ini merupakan instance dari konsep. Jika concept ditentukan, maka id boleh dihilangkan; nilainya secara implisit didefinisikan sebagai id dari konsep yang direferensikan (misalnya, <property concept="geo:country"/> setara dengan <property id="country" concept="geo:country"/>).

Properti dapat berisi atribut isParent Boolean, untuk menunjukkan bahwa hubungan antara instance konsep dan nilai properti ini bersifat hierarkis.

Properti dapat berisi atribut isMapping Boolean, untuk menunjukkan bahwa ada pemetaan 1-1 antara instance konsep dan nilai properti.

Properti dapat menentukan info bertingkat dan type, yang ditentukan seperti halnya untuk suatu konsep. type wajib ada jika properti tidak menentukan atribut concept, dan harus cocok dengan jenis konsep yang direferensikan jika memang demikian.

<attribute> Opsional

Atribut konsep. Atribut merepresentasikan tambahan informasi tentang konsep (misalnya, PDB adalah persentase). Nilainya dari atribut id wajib unik untuk konsep. Atribut concept opsional dapat digunakan untuk menunjukkan bahwa nilai atribut ini merupakan instance dari konsep. Jika concept ditentukan, maka id dapat dihilangkan. Nilainya secara implisit didefinisikan sebagai ID konsep yang direferensikan. (mis., <attribute concept="unit:unit"/> setara dengan <attribute id="unit" concept="unit:unit"/>.

Atribut dapat menentukan info bertingkat dan type, yang ditentukan seperti untuk konsep. type wajib ada jika atribut tidak menentukan atribut concept, dan harus cocok dengan jenis konsep yang direferensikan jika memang demikian.

<table> Opsional Mengidentifikasi tabel data yang berisi data untuk konsep. Tujuan nilai atribut ref yang diperlukan harus cocok dengan tabel ID yang ditentukan dalam elemen <table> terkait.

Slice

Deskripsi

Slice adalah kombinasi konsep yang menunjukkan keberadaan data. Sepotong berisi dua jenis referensi konsep: dimensi dan metrik. Dimensi adalah konsep yang digunakan untuk menyegmentasikan atau memfilter memahami data Anda. Di sisi lain, metrik menggambarkan nilai atau nilai-nilai yang terkait dengan setiap titik data.

Secara umum, dimensi bersifat kategoris sedangkan metrik tidak kategorik, nilai numerik yang bervariasi waktu. Beberapa contoh prototipe dari masing-masing adalah sebagai berikut ini:

  • Dimensi: Negara, negara bagian, county, wilayah, tahun, bulan, jenis kelamin, kategori usia, segmen industri
  • Metrik: Populasi, PDB, tingkat pengangguran, literasi, pendapatan, biaya, harga

Contoh

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

Berikut adalah cara kerja contoh tersebut.

  • Bagian ini merepresentasikan populasi menurut negara.
  • Dimensi ini memiliki metrik population dan dimensi country, dan year. Setiap dimensi adalah konsep seperti yang ditentukan di tempat lain. Konsep country dan metrik population berada dalam set data yang sama dengan slice saat ini, dan dirujuk seperti ini: concept="country"
  • Konsep year ada dalam waktu set data yang diimpor, diidentifikasi dengan awalan yang digunakan sebelum nama konsep (year), seperti ini: concept="time:year"
  • Slice merujuk pada tabel data yang mengarah ke file CSV yang berisi data aktual. Tabel data dirujuk seperti ini: <table ref="country_slice_table"/>. (Lihat di atas untuk informasi tentang cara mengimpor set data.)

Catatan: Secara umum, set data Anda akan lebih fleksibel jika meminimalkan metrik, dan sebaliknya membuat dimensi kustom. Misalnya, daripada membuat metrik Female Unemployment dan Male Unemployment, buat metrik tunggal Unemployment, dan tambahkan dimensi Gender yang memiliki instance Female dan Male.

Elemen

Elemen Wajib? Deskripsi
<slices> Ya Elemen tingkat atas. Mencakup semua <slice> yang kurang penting.
<slice> Opsional Mengidentifikasi slice. Nilai atribut yang diperlukan id harus unik untuk slice tersebut.
<dimension> Opsional Menentukan dimensi irisan, dengan mereferensikan konsep. Tujuan nilai atribut concept wajib sama persis ID unik konsep, dan gunakan awalan yang valid jika konsep termasuk dalam set data eksternal yang diimpor.
<metric> Opsional Menentukan metrik irisan, dengan mereferensikan konsep. Nilainya atribut wajib concept harus sama persis dengan ID unik dari konsep, dan gunakan awalan yang valid jika konsep tersebut termasuk ke set data eksternal yang diimpor.
<table> Ya Mengidentifikasi tabel data yang berisi data untuk slice. Nilainya atribut ref yang diperlukan harus cocok dengan ID tabel yang ditentukan dalam elemen <table> terkait.
<mapDimension> Opsional Turunan dari <table>. Berisi atribut concept dan toColumn; nilai pertama adalah dimensi dalam irisan, dan nilai dimensi kedua adalah kolom tabel yang sesuai dengan yang pertama.
<mapMetric> Opsional Turunan dari <table>. Berisi atribut concept dan toColumn; nilai pertama adalah metrik dalam irisan, dan nilai kedua adalah kolom tabel yang sesuai dengan yang pertama.

Tabel

Deskripsi

Bagian tables dalam file DSPL mengidentifikasi data tabel yang disertakan dalam {i>dataset <i}tersebut. Tabel-tabel ini bisa direferensikan oleh konsep atau menurut irisan. Setiap elemen <table> menentukan kolom tabel dan jenisnya, lalu menunjuk ke {i>file<i} CSV yang berisi tabel layanan otomatis dan data skalabel.

Contoh

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

Berikut adalah cara kerja contoh ini.

  • Contoh ini mendeskripsikan tabel country_slice_table. Tujuan tabel memiliki kolom country, year, dan population.
  • Setiap kolom dalam tabel memiliki ID unik, yang didefinisikan oleh Atribut id. Id ini harus sama persis dengan dalam file data terkait.
  • Nilai atribut type opsional menentukan data untuk setiap kolom.
  • Elemen <data> menjelaskan file .csv yang sebenarnya (country_slice.csv) yang berisi data untuk tabel tersebut. Format filenya adalah selalu csv.

Elemen

Elemen Wajib? Deskripsi
<tables> Ya Elemen tingkat atas. Mencakup semua <table> yang kurang penting.
<table> Ya Mengidentifikasi tabel. Nilai atribut yang diperlukan id harus unik untuk tabel.
<column> Opsional Turunan dari <table>. Informasi tentang kolom yang disertakan dalam tabel. Mencakup atribut berikut:
  • id (wajib diisi): ID kolom.
  • type (opsional): Jenis data informasi di kolom yang ditentukan. Nilai yang diizinkan adalah: string, float, integer, date, atau boolean.
<data> Opsional Turunan dari <table>. {i>File<i} data yang direferensikan oleh tabel. Jika nama file berupa URL (mis., http://...), maka file akan diambil melalui protokol yang sesuai (HTTP, HTTPS, atau FTP); jika tidak, file yang memiliki nama tersebut harus dipaketkan dengan {i>dataset<i}. Nilai atribut format yang diperlukan adalah selalu csv. Meskipun atribut encoding bersifat opsional, file .csv Anda harus berenkode UTF-8.

Topik

Deskripsi

Topik mengklasifikasikan konsep secara hierarkis, memungkinkan pengguna untuk menavigasi menjelajahi {i>dataset<i} Anda dengan lebih mudah.

Elemen <topics> akan muncul tepat sebelum <concepts> di file DSPL Anda. (Urutan itu penting, dan Anda mungkin tidak dapat mengunggah {i>dataset<i} Anda jika muncul dalam urutan yang salah). Untuk menggunakan topik, referensikan topiknya dari definisi konsep.

Contoh

Berikut adalah contoh definisi topik:

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

...dan berikut adalah contoh referensi untuk topik ini dari sebuah konsep:

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

Topik dapat disusun bertingkat, dan sebuah konsep dapat merujuk ke lebih dari satu topik.

Definisi elemen

Elemen Wajib? Deskripsi
<topics> Ya Elemen tingkat atas. Mencakup semua <topic> yang kurang penting.
<topic> Ya Mengidentifikasi topik. Nilai atribut yang diperlukan id harus unik untuk set data.
<info> Opsional Turunan dari <topic>. Menyertakan informasi tentang topik.
<name> Opsional Turunan dari <info>. Elemen turunannya <value> menentukan nama topik.

File Data DSPL

Selain file metadata XML, set data DSPL juga dapat menyertakan satu atau beberapa file data dalam format CSV. Setiap {i>file<i} data mendukung tabel dalam {i>dataset<i}, dan direferensikan dari yang pertama dalam <data>...</data>. Secara konseptual, file-file ini dan tabel-tabel terkaitnya digunakan untuk merepresentasikan konsep definisi atau slice data. Setiap jenis {i>file<i} data ini yang dijelaskan secara lebih detail di bawah ini.

Perhatikan bahwa, apa pun tujuannya, semua file data harus file teks UTF-8 yang dipisahkan koma (CSV). File hanya boleh berisi data biasa teks; tanpa HTML. Anda dapat membuat file data secara manual, tetapi secara realistis perlu memijat data baik di alat yang berisi data asli sumber (mis., spreadsheet), atau dalam file yang diekspor.

File dapat digabungkan dengan {i>dataset<i} atau, jika namanya dalam bentuk URL, diambil melalui HTTP, HTTPS, atau FTP dari sumber jarak jauh.

File Data Konsep

File data konsep berisi informasi yang relevan untuk setiap konsep. Tujuan definisi konsep menggunakan elemen <table> sebagai referensi file ini.

Contoh

Berikut contoh tabel untuk konsep country didefinisikan di atas:

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

Berikut cara kerja contoh ini:

  • Kecuali pemetaan ditentukan, baris pertama {i>file<i} data (kolom judul) harus sama persis dengan ID konsep dan properti yang sesuai ID konsep yang terkait dengan data. Namun, pesanan tidak harus sama dalam file data dan tabel konsep. Dalam hal ini, kolom pertama dikaitkan dengan konsep country, dan kolom kedua dikaitkan dengan properti name.
  • Kolom properti bersifat opsional; jika properti tidak memiliki kolom dalam tabel, maka nilainya diasumsikan tidak terdefinisi untuk setiap baris. Tujuan tabel di atas, misalnya, menghilangkan kolom untuk latitude dan longitude, sehingga negara tidak akan dapat dipetakan.
  • Setiap nilai untuk isian ID konsep (dalam kasus ini, country) harus unik dan tidak kosong (kolom kosong adalah satu dengan nol atau hanya karakter spasi kosong).
  • Nilai untuk properti yang merujuk konsep lain harus kosong atau merupakan nilai valid dari konsep yang dirujuk.
  • Memasukkan nilai dalam tanda kutip ganda bersifat opsional kecuali jika nilai tersebut berisi koma, tanda petik ganda, atau karakter baris baru.
  • Escape tanda kutip ganda literal yang muncul dalam nilai dengan mengawalinya dengan tanda petik ganda lainnya.

File Data Slice

File data irisan berisi data yang relevan untuk setiap irisan. Irisan menggunakan elemen <table ref="..."> untuk lihat definisi <table>, yang selanjutnya mengidentifikasi file ini.

Contoh

Berikut adalah contoh file .csv yang berisi data untuk Potongan population_by_country dijelaskan di atas:

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

Berikut ini cara kerja contoh tersebut:

  • Kolom metrik adalah population. Kolom country dan year adalah kolom dimensi.
  • Setiap nilai kolom dimensi tidak boleh kosong. Ini termasuk waktu dimensi kustom. Nilai untuk kolom metrik boleh kosong. Nilai kosong adalah direpresentasikan oleh tanpa karakter.
  • Setiap judul kolom yang merujuk pada sebuah konsep (misalnya, judul dari contoh di atas merujuk ke konsep country) harus sama persis dengan id unik konsep dalam definisi konsep.
  • Kombinasi unik nilai dimensi, misalnya, AF, 2000, hanya mungkin terjadi sekali.
  • Baris dalam deret waktu yang sama (yaitu, baris yang memiliki kombinasi yang sama semua nilai dimensi, kecuali waktu) harus dikelompokkan bersama, meskipun nilai tidak perlu diurutkan.

Fitur Lanjutan

Set Data Multibahasa

Nilai XML yang Diterjemahkan

Anda dapat menggunakan atribut xml:lang dengan setiap <value> di file DSPL Anda. Atribut ini menentukan bahasa konten elemen, menggunakan standar W3C, tag bahasa. Perhatikan bahwa penggunaan fitur ini bersifat opsional; jika tidak Atribut xml:lang disertakan, konten dianggap berada di Bahasa Inggris.

Contoh berikut menunjukkan {i>snipet<i} dari suatu {i>dataset<i} dalam bahasa Inggris, Bulgaria, Katalan, dan China Aksara Sederhana:

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

Properti yang Diterjemahkan

Dalam beberapa kasus, Anda mungkin ingin memberikan terjemahan yang lebih dari sekadar metadata tingkat konsep, dengan menerapkan sebagai tambahan (atau sebagai gantinya) pada instance konsep. Hal ini sangat berguna ketika nilai-nilai konsep (mis., nama) bervariasi berdasarkan bahasa.

Untuk memberikan nilai tersebut dalam beberapa bahasa, buat satu kolom di tabel definisi yang sesuai untuk setiap kombinasi properti/bahasa. Lalu, tautkan kolom tersebut ke properti dan bahasa yang terkait dengan menambahkan kumpulan elemen <mapProperty xml:lang="..." ref="..." toColumn="..."> ke tabel untuk konsep.

Berikut ini contoh yang mendefinisikan konsep negara dengan nama dalam bahasa Inggris, Spanyol, dan Prancis:

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

File CSV untuk countries_table kemudian akan memiliki formulir berikut:

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

Konsep yang Dapat Dijatuhkan

Banyak konsep (misalnya: county, state, dan kota) memiliki instance yang sesuai dengan lokasi geografis. DSPL mendukung geocoding terhadap instance-instance ini sehingga dapat divisualisasikan dalam Diagram peta animasi Google Public Data.

Jika konsep Anda setara dengan Negara dunia, negara bagian AS, atau AS negara, maka Anda cukup menautkan ke situs resmi konsep; tidak diperlukan geocoding eksplisit. Lihat Panduan Konsep Kanonis untuk informasi selengkapnya spesifikasi pendukung.

Jika tidak, maka Anda perlu membuat konsep Anda dapat dipetakan. Langkah pertama adalah perluas dari geo:location:

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

Kemudian, Anda harus secara eksplisit menambahkan lintang dan bujur sebagai properti:

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

Nilai untuk ini kemudian ditetapkan sebagai kolom dalam isian tabel data definisi konsep.

Hubungan Konsep

Konsep sering kali dikaitkan dengan konsep lain secara terstruktur. Sebagai instance benua dapat mencakup beberapa instance negara, yang nantinya dapat berisi beberapa instance negara bagian atau provinsi. Mengenkode hubungan dalam metadata {i>dataset<i} memungkinkan visualisasi yang lebih kaya fitur daripada yang mungkin ada, misalnya, menampilkan pohon yang dapat diciutkan beberapa lokasi yang bisa dipilih.

Pada bagian di bawah ini, kami menjelaskan hubungan konsep yang didukung dalam skema DSPL.

Hierarki

Hierarki konsep direpresentasikan dalam DSPL melalui penggunaan sebuah Atribut isParent="true" di Tag <property> dari konsep turunan, yang berisi pengenal instance dari konsep induk.

Sebagai contoh, konsep County AS milik Google memiliki formulir berikut:

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

Tabel data pendukung memiliki kolom state dengan elemen kode negara bagian dua huruf untuk setiap county. Jenis {i>metadata<i} ini memungkinkan Penjelajah Data Publik untuk menunjukkan negara bagian dan county sebagai hierarki, sebuah fitur yang membuat eksplorasi jauh lebih mudah bagi pengguna.

Perhatikan bahwa suatu konsep dapat memiliki banyak turunan tetapi tidak lebih dari satu induk.

Pemetaan

Pemetaan konsep (yaitu konsep yang mewakili, pada dasarnya, hal yang sama objek) direpresentasikan melalui isMapping="true" di tag property dari konsep yang dipetakan.

Menetapkan bahwa satu konsep dipetakan ke konsep yang lain memungkinkan konsep yang pertama mewarisi semua properti dan atribut yang kedua. Di antara aplikasi lainnya, Hal ini berguna untuk "menautkan" konsep geografis pribadi dengan yang ditentukan dalam set data geografis kanonis 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>
  

Ekstensi

Ekstensi konsep ditetapkan melalui elemen extends dalam definisi konsep yang sesuai. {i>Ekstensi<i} berguna untuk menunjukkan bahwa konsep tertentu merupakan sub kelas dari konsep lain yang lebih luas. Tujuan konsep yang diperluas mewarisi semua atribut dan properti dari induknya, dan juga dapat menambahkan yang lain.

Sebagai contoh, konsep currency Google memperluas 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>
  

Lihat diskusi tentang konsep ekstensi di tutorial untuk mendapatkan penjelasan dan contoh lebih lanjut.

Mengirimkan Set Data Anda

Untuk mengirimkan kumpulan data Anda ke Penjelajah Data Publik Google, ikuti langkah-langkah berikut petunjuk:

  1. Membuat direktori.
  2. Simpan file dspl set data di direktori yang Anda buat. Pastikan untuk menggunakan ekstensi .xml.
  3. Simpan file .csv lokal apa pun di direktori yang sama. File data yang yang direferensikan melalui URL dapat dihilangkan.
  4. Zip direktori.
  5. Upload set data Anda ke Google Public Data Penjelajah.

Setelah {i>dataset<i} diunggah dan divalidasi, Anda dapat mengujinya saat ditandatangani ke Akun Google Anda. Hasil ini tidak akan dipublikasikan sampai Anda memeriksanya dan memberitahu bahwa itu sudah siap.