Panduan Developer DSPL

DSPL adalah singkatan dari {i>Dataset Publishing Language<i}. Ini adalah format representasi untuk metadata (informasi tentang set data, seperti nama dan penyedianya, serta konsep yang dimuat dan ditampilkan di dalamnya) dan data sebenarnya dari set data. Set data yang dijelaskan dalam format ini dapat diimpor ke Penjelajah Data Publik Google, sebuah alat yang memungkinkan eksplorasi data yang lengkap dan visual.

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

Dokumen ini ditujukan untuk pemilik data yang ingin kontennya tersedia di Penjelajah Data Publik. Selain Tutorial, Anda dapat mempelajari lebih lanjut detail skema DSPL dan fitur yang didukung. Hanya asumsi dasar tentang XML yang diasumsikan, meskipun pengetahuan tentang database relasional juga berguna.

Meskipun bukan persyaratan, sebaiknya baca Tutorial yang lebih singkat dan mudah dipahami sebelum melihat dokumen ini.

Ringkasan

Set data DSPL adalah file .zip yang berisi file XML dan serangkaian file CSV. File CSV adalah tabel sederhana yang berisi data set data, sedangkan file XML menjelaskan metadata set data. Yang kedua mencakup metadata informasional seperti deskripsi ukuran, serta metadata struktural seperti referensi antar-tabel. Metadata ini memungkinkan pengguna non-ahli untuk menjelajahi dan memvisualisasikan data Anda.

Proses

Secara umum, proses pembuatan set data DSPL adalah sebagai berikut (beberapa 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. Perbarui konten file DSPL Anda secara iteratif.
  4. Ekspor data sumber ke file .csv.
  5. Membuat set data DSPL.
  6. Kirim set data ke Google.

Struktur XML

Ringkasan

File XML DSPL menentukan metadata set data, termasuk hubungan struktural antara konsep, irisan, topik, dan tabel. Meskipun file ini dapat dibuat secara manual, skrip dan alat pemrosesan data dapat menyederhanakan prosesnya. Lihat contoh file DSPL di jendela baru.

File ini mencakup sejumlah bagian, yang diringkas dalam tabel di bawah. Setelah tabel tersebut, kami menjelaskan setiap variabel secara lebih mendetail.

Bagian Ringkasan Info Selengkapnya
Header dan Impor Induk untuk semua elemen set data lainnya. Mencakup namespace target (yaitu ID) untuk set data, bersama dengan namespace 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 (mis., negara, tingkat pengangguran, gender, dll.)

Setiap konsep memiliki ID unik, yang dapat direferensikan oleh slice dan tabel.

Dokumentasi
Slice

Kombinasi konsep yang disertai data statistik dalam set data. Setiap irisan berisi dimensi dan metrik.

Konsep referensi Slice, dan juga tabel, yang berisi data aktual. Setiap irisan memiliki ID unik yang dapat direferensikan oleh tabel yang berisi data aktual.

Dokumentasi
Tables Menentukan data untuk konsep dan irisan. Tabel konsep menyimpan enumerasi dan tabel irisan menyimpan data statistik. Tabel ditetapkan dalam file XML, dan mengarah ke file .csv yang berisi data aktual. Dokumentasi
Topik Kategori untuk mengatur konsep set data. Meskipun tidak wajib, parameter ini dapat sangat membantu pengguna saat membuka data Anda. Dokumentasi

Header dan Impor

Mendeklarasikan namespace Data Publik

Set data DSPL dimulai dengan elemen <dspl> tingkat atas. Atribut ini digunakan untuk menyertakan semua informasi set data dan menunjukkan namespace apa pun 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). targetNamespace menyediakan URI yang mengidentifikasi set data Anda. URI ini tidak diperlukan untuk mengarah ke resource sebenarnya, tetapi sebaiknya URI di-resolve ke dokumen yang menjelaskan konten atau set data Anda.

Anda tidak perlu memberikan targetNamespace. Jika tidak, kode akan dibuat secara otomatis untuk Anda pada waktu impor.

Atribut targetNamespace diikuti oleh serangkaian atribut xmlns yang menentukan skema XML lain yang akan digunakan dalam file tersebut. Setiap file DSPL harus menyertakan skema Data Publik Google, dengan URI-nya "http://schemas.google.com/dspl/2010" dan menggunakannya sebagai namespace default. Kebijakan ini juga harus menyertakan skema XML W3 standar yang diidentifikasi oleh "http://www.w3.org/2001/XMLSchema-instance". Seperti yang dijelaskan di bagian selanjutnya, namespace lain dapat ditambahkan untuk menyertakan informasi dari set data lain.

Mengimpor namespace set data lain

Set data dapat menggunakan kembali definisi dan data dari set data lain. Google, misalnya, menyediakan sejumlah set data dasar yang menentukan konsep yang umumnya muncul dalam data pengguna. Misalnya, sebagian besar set data memerlukan konsep untuk merepresentasikan tahun. Daripada menetapkan konsep baru, Anda dapat menggunakan konsep tahun dari set data "http://www.google.com/publicdata/dataset/time". Lihat halaman Konsep Kanonis untuk mengetahui informasi selengkapnya.

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

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

Kemudian, tambahkan namespace yang diimpor (dalam hal ini, time="http://www.google.com/publicdata/dataset/google/time") ke deklarasi namespace di bagian atas file, 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 set data waktu Data Publik Google. Ulangi proses ini untuk setiap set data yang ingin Anda rujuk.

Mereferensikan konten dalam {i>dataset<i} eksternal

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

Berikut adalah contoh referensi 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 set data. Contoh dan detail tentang elemen XML yang relevan tercantum di bawah.

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 diisi? 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 set data.
<description> Opsional Turunan dari <info>. Menyertakan elemen turunan <value>, yang mencakup deskripsi teks dari set data.
<url> Ya Turunan dari <info>. Link ke URL dengan informasi selengkapnya tentang set data.

Informasi Penyedia

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

Contoh

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

Elemen

Elemen Wajib diisi? 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 penyedia set data.
<url> Opsional Turunan dari <info>. Link ke URL dengan informasi selengkapnya tentang penyedia set data.

Konsep

Deskripsi

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

Setiap konsep dapat memiliki satu atau beberapa properti. Properti adalah karakteristik 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 memberikan informasi pada tingkat konsep, bukan instance individualnya. Misalnya, jika kita memiliki set data dengan konsep tingkat pengangguran, kita dapat menggunakan atribut untuk menunjukkan bahwa konsep ini adalah persentase. Contoh lain dari penggunaan atribut yang umum adalah memberikan informasi unit.

Contoh

Berikut adalah contoh konsep negara dengan ID unik country, dan properti name. ID konsep dapat 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 serta properti name, continent, dan capital.
  • Konsep ini memperluas geo:location, konsep kanonis untuk lokasi. Dengan memperluas geo:location, country akan mewarisi semua properti dan atribut yang ditentukan oleh konsep yang diperluas: nama properti, deskripsi, URL, lintang, dan bujur. country dapat menentukan ulang sebagian atribut dan properti ini, selama definisinya konsisten dengan yang disediakan oleh konsep yang diperluas.
  • Elemen <info> konsep menjelaskan informasi penting tentang konsep. Data ini ditampilkan di halaman landing set data di Penjelajah Data Publik.
  • Elemen <type> konsep mengacu pada jenis konten. Dalam hal ini berupa string, tetapi bisa bervariasi. Konsep Population akan memiliki jenis integer; konsep Eurovision winner dapat memiliki jenis boolean.
  • Elemen <property> menjelaskan setiap properti konsep, termasuk ID uniknya (id), info, dan type. Properti juga dapat mereferensi konsep, untuk menunjukkan bahwa nilainya adalah instance yang valid dari konsep tersebut.
  • Konsep ini merujuk pada tabel data yang mengarah ke file 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. Misalnya, Anda tidak dapat membuat tabel yang hanya mencantumkan beberapa negara yang disertakan dalam set data. (Jika ada subset negara yang penting bagi Anda, Anda dapat membuat konsep terpisah untuk mendeskripsikannya. Misalnya, mycountries.)

Elemen

Elemen Wajib diisi? Deskripsi
<concepts> Ya Elemen tingkat atas. Mencakup semua elemen <concept>.
<concept> Ya Mengidentifikasi konsep. Nilai atribut yang diperlukan id harus unik untuk konsep dalam set data. Jika konsep merujuk ke tabel data konsep, nilai id harus cocok dengan judul kolom yang menjelaskan konsep dalam tabel data. Atribut extends dapat digunakan untuk menunjukkan bahwa konsep ini memperluas konsep lain. Nilai extends harus cocok dengan ID konsep yang ditentukan dalam set data yang sama, atau dalam format prefix:concept_id, dengan concept_id adalah ID konsep yang ditentukan dalam set data eksternal yang diimpor yang terkait dengan prefix.
<info> Opsional Menyertakan informasi deskriptif tentang konsep.
<name> Ya Turunan dari <info>. Nama konsep. Elemen turunan <value> berisi teks - misalnya, 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 dari semua instance konsep. Elemen turunan <value> berisi text- dalam kasus konsep country, misalnya, mungkin berupa World.
<type> Opsional Mengidentifikasi jenis konten yang dijelaskan oleh konsep. Atribut wajib ref memiliki nilai yang diizinkan berikut:
  • string
  • float
  • bilangan bulat
  • date
  • boolean
Jenis ini dapat dihilangkan jika konsep memperluas konsep lain, yang dalam hal ini diwarisi dari konsep yang diperluas.
<property> Opsional

Properti konsep, seperti capital. Nilai atribut id yang diperlukan harus unik untuk konsep. Atribut concept opsional dapat digunakan untuk menunjukkan bahwa nilai properti ini adalah instance dari konsep tertentu. Jika concept ditentukan, id dapat 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 dan type bertingkat, yang ditentukan seperti halnya untuk sebuah konsep. type wajib ada jika properti tidak menentukan atribut concept, dan harus cocok dengan jenis konsep yang direferensikan jika demikian.

<attribute> Opsional

Atribut konsep. Atribut merepresentasikan informasi tambahan tentang konsep (misalnya, PDB adalah persentase). Nilai atribut id yang diperlukan harus unik untuk konsep. Atribut concept opsional dapat digunakan untuk menunjukkan bahwa nilai atribut ini adalah instance dari konsep tertentu. Jika concept ditentukan, 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 dan type bertingkat, yang ditentukan seperti untuk konsep. type wajib ada jika atribut tidak menentukan atribut concept, dan harus cocok dengan jenis konsep yang direferensikan jika atribut tersebut cocok.

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

Irisan

Deskripsi

Slice adalah kombinasi beberapa konsep dari data yang ada. Slice berisi dua jenis referensi konsep: dimensi dan metrik. Dimensi adalah konsep yang digunakan untuk menyegmentasikan atau memfilter data Anda. Di sisi lain, metrik menjelaskan nilai yang diamati atau nilai yang terkait dengan setiap titik data.

Umumnya, dimensi bersifat kategorikal, sedangkan metrik bersifat non-kategori, rentang waktu, dan berupa nilai numerik. Beberapa contoh prototipe dari setiap parameter tersebut adalah sebagai berikut:

  • 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.
  • Laporan ini memiliki metrik population, serta dimensi country, dan year. Setiap dimensi adalah konsep yang sudah didefinisikan di tempat lain. Konsep country dan metrik population berada dalam set data yang sama dengan slice saat ini, dan direferensikan seperti ini: concept="country"
  • Konsep year ada dalam waktu set data yang diimpor, yang diidentifikasi berdasarkan awalan yang digunakan sebelum nama konsep (year), seperti ini: concept="time:year"
  • Slice ini merujuk pada tabel data yang mengarah ke file CSV yang berisi data aktual. Tabel data direferensikan seperti ini: <table ref="country_slice_table"/>. (Lihat informasi tentang cara mengimpor set data di atas.)

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

Elemen

Elemen Wajib diisi? Deskripsi
<slices> Ya Elemen tingkat atas. Mencakup semua elemen <slice>.
<slice> Opsional Mengidentifikasi slice. Nilai atribut yang diperlukan id harus unik untuk slice tersebut.
<dimension> Opsional Menentukan dimensi irisan, dengan mereferensikan konsep. Nilai atribut concept yang diperlukan harus sama persis dengan ID unik konsep, dan menggunakan awalan yang valid jika konsep termasuk dalam set data eksternal yang diimpor.
<metric> Opsional Menentukan metrik irisan, dengan mereferensikan konsep. Nilai concept atribut wajib harus sama persis dengan ID unik konsep, dan menggunakan awalan yang valid jika konsep tersebut milik set data eksternal yang diimpor.
<table> Ya Mengidentifikasi tabel data yang berisi data untuk slice. Nilai 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 slice, dan nilai kedua adalah kolom tabel yang sesuai dengan nilai 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 nilai pertama.

Tabel

Deskripsi

Bagian tables pada file DSPL mengidentifikasi tabel data yang disertakan dalam set data. Tabel ini dapat dirujuk berdasarkan konsep atau berdasarkan irisan. Setiap elemen <table> menentukan kolom tabel dan jenisnya, serta mengarah ke file CSV yang berisi data tabel.

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. Tabel memiliki kolom country, year, dan population.
  • Setiap kolom dalam tabel memiliki ID unik, yang ditentukan oleh atribut id. ID ini harus sama persis dengan judul kolom yang sesuai dalam file data terkait.
  • Nilai atribut type opsional menentukan jenis data untuk setiap kolom.
  • Elemen <data> menjelaskan file .csv sebenarnya (country_slice.csv) yang berisi data untuk tabel. Format file selalu csv.

Elemen

Elemen Wajib diisi? Deskripsi
<tables> Ya Elemen tingkat atas. Mencakup semua elemen <table>.
<table> Ya Mengidentifikasi tabel. Nilai atribut yang diperlukan id harus unik pada 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 untuk informasi dalam kolom yang ditentukan. Nilai yang diizinkan adalah: string, float, integer, date, atau boolean.
<data> Opsional Turunan dari <table>. File data yang dirujuk oleh tabel. Jika nama file tersedia dalam bentuk URL (misalnya, http://...), file akan diambil melalui protokol yang sesuai (HTTP, HTTPS, atau FTP); jika tidak, file dengan nama ini harus dipaketkan dengan set data. Nilai atribut yang diperlukan format selalu csv. Meskipun atribut encoding bersifat opsional, file .csv Anda harus berenkode UTF-8.

Topik

Deskripsi

Topik mengklasifikasikan konsep secara hierarkis, sehingga pengguna dapat menjelajahi set data Anda dengan lebih mudah.

Elemen <topics> harus muncul tepat sebelum elemen <concepts> di file DSPL Anda. (Urutan elemen itu penting, dan Anda mungkin tidak dapat mengupload set data jika elemen muncul dalam urutan yang salah.) Untuk menggunakan topik, referensikan topik tersebut 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 diisi? Deskripsi
<topics> Ya Elemen tingkat atas. Mencakup semua elemen <topic>.
<topic> Ya Mengidentifikasi topik. Nilai atribut yang diperlukan id harus unik untuk set data.
<info> Opsional Turunan dari <topic>. Menyertakan informasi tentang suatu 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 file data mendukung tabel dalam set data, dan direferensikan dari file sebelumnya di bagian <data>...</data>-nya. Secara konseptual, file ini dan tabel yang terkait digunakan untuk merepresentasikan definisi konsep atau data irisan. Setiap jenis file data ini dijelaskan secara lebih mendetail di bawah ini.

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

File dapat digabungkan dengan set data 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. Definisi konsep menggunakan elemen <table> untuk merujuk ke file ini.

Contoh

Berikut adalah contoh tabel untuk konsep country yang 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 file data (judul kolom) harus sama persis dengan ID konsep dan ID properti yang sesuai dari konsep yang terkait dengan data. Namun, urutan kolom 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, nilainya diasumsikan tidak ditentukan untuk setiap baris. Tabel di atas, misalnya, menghilangkan kolom untuk properti latitude dan longitude, sehingga negara tidak akan dapat dipetakan.
  • Setiap nilai untuk kolom ID konsep (dalam hal ini, country) harus unik dan tidak kosong (kolom kosong adalah nilai satu dengan karakter spasi kosong nol atau hanya).
  • Nilai untuk properti yang merujuk konsep lain harus kosong atau berupa nilai yang valid dari konsep yang direferensikan.
  • Menempatkan nilai dalam tanda kutip ganda bersifat opsional, kecuali jika nilai tersebut berisi koma, tanda kutip ganda, atau karakter baris baru.
  • Hindari tanda kutip ganda literal yang muncul dalam nilai dengan mengawalinya dengan tanda kutip ganda lainnya.

File Data Slice

File data irisan berisi data yang relevan untuk setiap irisan. Definisi slice menggunakan elemen <table ref="..."> untuk merujuk pada definisi <table>, yang kemudian mengidentifikasi file ini.

Contoh

Berikut adalah contoh file .csv yang berisi data untuk slice population_by_country yang 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 dimensi waktu. Nilai untuk kolom metrik boleh kosong. Nilai kosong direpresentasikan oleh tanpa karakter.
  • Setiap heading kolom yang merujuk pada konsep (misalnya, kolom pertama dari contoh di atas merujuk pada konsep country) harus sama persis dengan ID unik konsep dalam definisi konsep.
  • Kombinasi nilai dimensi yang unik, misalnya AF, 2000, hanya dapat terjadi sekali.
  • Baris dalam deret waktu yang sama (yaitu baris yang memiliki kombinasi yang sama dari semua nilai dimensi, kecuali waktu) harus dikelompokkan bersama, meskipun baris tersebut tidak perlu diurutkan.

Fitur Lanjutan

Set Data Multibahasa

Nilai XML yang Diterjemahkan

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

Contoh berikut menunjukkan snipet set data 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) ke instance konsep individual. Hal ini sangat berguna ketika nilai properti konsep (misalnya, nama) bervariasi berdasarkan bahasa.

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

Berikut adalah contoh yang menentukan 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 bentuk 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 city) memiliki instance yang sesuai dengan lokasi geografis. DSPL mendukung geocoding terhadap instance-instance ini sehingga dapat divisualisasikan dalam diagram peta animasi Data Publik Google.

Jika konsep Anda setara dengan negara Dunia, negara bagian AS, atau county AS, Anda cukup menautkan ke konsep kanonis Google yang sesuai; tidak diperlukan geocoding eksplisit. Lihat Panduan Konsep Kanonis untuk detail selengkapnya.

Jika tidak, maka Anda perlu membuat konsep Anda dapat dipetakan. Langkah pertama adalah memperluasnya 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 atribut ini kemudian ditentukan sebagai kolom dalam tabel data definisi konsep yang sesuai.

Hubungan Konsep

Konsep sering kali dikaitkan dengan konsep lain secara terstruktur. Misalnya, instance benua dapat mencakup beberapa instance negara, yang nantinya dapat berisi beberapa instance negara bagian atau provinsi. Dengan mengenkode hubungan ini dalam metadata set data, fitur visualisasi yang lebih beragam daripada yang dapat dihasilkan sebelumnya, misalnya menampilkan hierarki lokasi yang dapat diciutkan yang dapat dipilih.

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

Hierarki

Hierarki konsep direpresentasikan dalam DSPL melalui penggunaan atribut isParent="true" pada tag <property> dari konsep turunan, yang berisi ID instance dari konsep induk.

Sebagai contoh, konsep County AS Google memiliki bentuk 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 kode negara bagian dua huruf untuk setiap county. Jenis metadata ini memungkinkan Penjelajah Data Publik untuk menampilkan negara bagian dan wilayah sebagai hierarki, sebuah fitur yang mempermudah pengguna dalam melakukan eksplorasi.

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

Pemetaan

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

Menentukan bahwa satu konsep dipetakan ke konsep lainnya memungkinkan konsep pertama mewarisi semua properti dan atribut yang kedua. Di antara aplikasi lainnya, konsep ini berguna untuk "menautkan" konsep geografis pribadi dengan konsep 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. Ekstensi berguna untuk menunjukkan bahwa konsep tertentu merupakan subclass dari konsep lain yang lebih luas. Konsep yang diperluas mewarisi semua atribut dan properti 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 ekstensi konsep dalam tutorial untuk mendapatkan penjelasan dan contoh lebih lanjut.

Mengirimkan Set Data Anda

Untuk mengirimkan set data ke Penjelajah Data Publik Google, ikuti petunjuk berikut:

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

Setelah set data diupload dan divalidasi, Anda dapat mengujinya saat login ke Akun Google Anda. Aplikasi tidak akan dipublikasikan sebelum Anda memeriksanya dan memberi tahu kami bahwa kode tersebut sudah siap.