Panduan Developer DSPL

DSPL adalah singkatan dari Dataset Publishing Language. Ini adalah format representasi untuk metadata (informasi tentang set data, seperti nama dan penyedianya, serta konsep yang ada dan ditampilkan) dan data set data yang sebenarnya. Set data yang dijelaskan dalam format ini dapat diimpor ke Google Public Data Explorer, alat yang memungkinkan eksplorasi data yang lengkap dan visual.

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 tersedia di Penjelajah Data Publik. Hal ini di luar Tutorial dengan mempelajari lebih dalam detail skema DSPL dan fitur yang didukung. Hanya pemahaman dasar XML yang diasumsikan, meskipun pengetahuan tentang database relasional juga berguna.

Meskipun bukan persyaratan, sebaiknya baca Tutorial, yang lebih singkat dan lebih 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. Parameter yang kedua mencakup metadata informasi seperti deskripsi tindakan, serta metadata struktural seperti referensi antar-tabel. Metadata ini memungkinkan pengguna non-ahli menjelajahi dan memvisualisasikan data Anda.

Memproses

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

  1. Buat file XML DSPL Anda.
  2. Identifikasi sumber data eksternal yang akan digunakan dalam set data Anda.
  3. Tentukan konsep, potongan, dan (opsional) topik. Mengupdate konten konten file DSPL Anda secara berulang.
  4. Ekspor data sumber Anda 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, slice, topik, dan tabel. Meskipun file ini dapat dibuat secara manual, alat dan skrip pemrosesan data dapat sangat menyederhanakan prosesnya. Lihat contoh file DSPL di jendela baru.

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

Bagian Ringkasan Info Selengkapnya
Header dan Impor Induk untuk semua elemen lain dari set data. Mencakup namespace target (yaitu ID) untuk set data, bersama dengan namespace 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 "hal-hal" 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 memiliki data statistik dalam set data. Setiap irisan berisi dimensi dan metrik.

Mengiris konsep referensi dan juga tabel, yang berisi data sebenarnya. Setiap bagian memiliki ID unik yang dapat direferensikan oleh tabel yang berisi data aktual.

Dokumentasi
Tabel Menentukan data untuk konsep dan slice. Tabel konsep menyimpan enumerasi dan tabel slice 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, fitur ini dapat sangat membantu pengguna yang membuka data Anda. Dokumentasi

Header dan Impor

Mendeklarasikan namespace Data Publik

Set data DSPL dimulai dengan elemen <dspl> level atas. 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 (kumpulan elemen dan atribut XML). targetNamespace menyediakan URI yang mengidentifikasi set data Anda. URI ini tidak diwajibkan untuk mengarah ke resource aktual, tetapi sebaiknya URI di-resolve ke dokumen yang menjelaskan konten atau set data Anda.

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

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

Mengimpor namespace set data lainnya

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

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 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 set data waktu Google Public Data. Ulangi proses ini untuk setiap set data yang ingin direferensikan.

Mereferensikan konten dalam set data eksternal

Setelah mengimpor set data lain, Anda harus dapat merujuk konsep, slice, 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 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 set data. Contoh dan detail tentang elemen XML yang relevan 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 diisi? Deskripsi
<info> Ya Mencakup semua informasi deskriptif tentang set data. Mencakup elemen turunan <name>, <description>, dan <url>.
<name> Ya Turunan <info>. Mencakup elemen turunan <value>, yang mengidentifikasi nama set data.
<description> Opsional Turunan <info>. Mencakup elemen turunan <value>, yang menyertakan deskripsi teks dari set data.
<url> Ya Turunan <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 ini.

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 Mencakup semua informasi deskriptif tentang penyedia set data. Mencakup elemen turunan <name> dan <url>.
<name> Opsional Turunan <provider>. Mencakup elemen turunan <value>, yang mengidentifikasi nama penyedia set data.
<url> Opsional Turunan <info>. Link ke URL dengan informasi selengkapnya tentang penyedia set data.

Konsep

Deskripsi

Setiap set data berisi satu atau beberapa konsep. Konsep adalah definisi dari jenis data yang muncul di set data. Set data dengan data populasi demografis, misalnya, 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 level konsep, bukan instance individualnya. Misalnya, jika kita memiliki set data dengan konsep tingkat pengangguran, kita dapat menggunakan atribut untuk menentukan bahwa konsep ini adalah persentase. Contoh lain dari penggunaan atribut secara umum adalah dengan menyediakan informasi unit.

Contoh

Berikut ini 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 negara konsep, yang memiliki ID country dan 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 tambahan: nama properti, deskripsi, URL, lintang, dan bujur. Tidak masalah bagi country untuk menentukan ulang beberapa atribut dan properti tersebut, selama definisi tersebut konsisten dengan yang diberikan oleh konsep yang diperluas.
  • Elemen <info> konsep menjelaskan informasi penting tentang konsep tersebut. Hal ini ditampilkan di halaman landing set data di Penjelajah Data Publik.
  • Konsep elemen <type> merujuk pada jenis konten. Dalam hal ini, string tersebut adalah string, tetapi dapat bervariasi. Konsep Populasi 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 mereferensikan konsep, untuk menunjukkan bahwa nilainya merupakan instance yang valid dari konsep tersebut.
  • Konsep ini merujuk ke tabel data yang mengarah ke file CSV yang berisi data aktual. Tabel data tersebut 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 mereferensikan 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 bentuk 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 <info>. Nama konsep. Elemen turunan <value> berisi teks - misalnya, Country.
<description> Opsional Turunan <info>. Mencakup elemen turunan <value>, yang menyertakan deskripsi teks dari konsep tersebut.
<url> Opsional Turunan <info>. Menyertakan elemen turunan <value>, yang menyertakan URL untuk konsep.
<pluralName> Opsional Turunan <info>. Nama jamak untuk konsep. Elemen turunan <value> berisi teks - misalnya, Countries.
<totalName> Opsional Turunan <info>. Nama untuk kombinasi semua instance konsep. Elemen turunan <value> berisi teks - dalam kasus konsep country, misalnya, ini mungkin World.
<type> Opsional Mengidentifikasi jenis konten yang dideskripsikan oleh konsep. Atribut wajib ref memiliki nilai yang diizinkan berikut:
  • string
  • float
  • bilangan bulat
  • date
  • boolean
Jenisnya dapat dihilangkan jika konsep memperluas konsep lain, dalam hal ini diwarisi dari konsep yang diperluas.
<property> Opsional

Properti konsep, seperti capital. Nilai atribut id yang diperlukan harus unik untuk konsep tersebut. 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 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 untuk konsep. type diperlukan jika properti tidak menentukan atribut concept, dan harus cocok dengan jenis konsep yang direferensikan jika properti tersebut cocok.

<attribute> Opsional

Atribut konsep. Atribut mewakili informasi tambahan tentang konsep (misalnya, PDB adalah persentase). Nilai atribut id yang diperlukan harus unik untuk konsep tersebut. 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 diperlukan jika atribut tidak menentukan atribut concept, dan harus cocok dengan jenis konsep yang direferensikan jika atribut ditentukan.

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

Slice

Deskripsi

Slice adalah kombinasi konsep yang datanya ada. Slice berisi dua jenis referensi konsep: dimension 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 kategoris, sedangkan metrik berupa nilai numerik non-kategoris, dan bervariasi. Beberapa contoh prototipe masing-masing adalah sebagai berikut:

  • Dimensi: Negara, negara bagian, wilayah, 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.

  • Potongan ini mewakili populasi menurut negara.
  • Laporan ini memiliki metrik population, serta dimensi country, dan year. Setiap dimensi adalah konsep yang sudah ditentukan di tempat lain. Konsep country dan metrik population ada 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 oleh awalan yang digunakan sebelum nama konsep (year), seperti ini: concept="time:year"
  • Slice mereferensikan tabel data yang mengarah ke file CSV yang berisi data aktual. Tabel data direferensikan seperti ini: <table ref="country_slice_table"/>. (Lihat di atas untuk informasi tentang mengimpor set data.)

Catatan: Secara umum, set data Anda akan lebih fleksibel jika Anda meminimalkan metrik, dan bukan 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 potongan. Nilai atribut yang diperlukan id harus unik untuk bagian tersebut.
<dimension> Opsional Menentukan dimensi irisan, dengan mereferensikan sebuah konsep. Nilai atribut concept yang diperlukan harus sama persis dengan ID unik konsep, dan menggunakan awalan yang valid jika konsep tersebut berasal dari set data eksternal yang diimpor.
<metric> Opsional Menentukan metrik irisan, dengan mereferensikan sebuah konsep. Nilai atribut wajib concept 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 <table>. Berisi atribut concept dan toColumn; nilai yang pertama adalah dimensi dalam irisan, dan nilai yang kedua adalah kolom tabel yang sesuai dengan yang pertama.
<mapMetric> Opsional Turunan <table>. Berisi atribut concept dan toColumn; nilai yang pertama adalah metrik dalam irisan, dan nilai yang kedua adalah kolom tabel yang sesuai dengan yang pertama.

Tabel

Deskripsi

Bagian tables file DSPL mengidentifikasi tabel data yang disertakan dalam set data. Tabel ini dapat direferensikan oleh konsep atau menurut slice. 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 menjelaskan 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 di file data terkait.
  • Nilai atribut type opsional menentukan jenis data untuk setiap kolom.
  • Elemen <data> menjelaskan file .csv aktual (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 wajib id harus unik untuk tabel ini.
<column> Opsional Turunan <table>. Informasi tentang kolom yang disertakan dalam tabel. Mencakup atribut berikut:
  • id (wajib): ID kolom.
  • type (opsional): Jenis data informasi di kolom yang ditentukan. Nilai yang diizinkan adalah: string, float, integer, date, atau boolean.
<data> Opsional Turunan <table>. File data yang direferensikan oleh tabel. Jika nama file dalam bentuk URL (misalnya, http://...), maka file akan diambil melalui protokol yang sesuai (HTTP, HTTPS, atau FTP); jika tidak, file dengan nama ini harus dipaketkan dengan set data. Nilai atribut wajib 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 menavigasi set data Anda dengan lebih mudah.

Elemen <topics> akan muncul tepat sebelum elemen <concepts> di file DSPL Anda. (Urutan elemen sangat penting, dan Anda mungkin tidak dapat mengupload set data jika elemen Anda muncul dalam urutan yang salah.) Untuk menggunakan topik, referensikan 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 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 bertingkat, dan sebuah konsep dapat mereferensikan 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 wajib id harus unik untuk set data.
<info> Opsional Turunan <topic>. Menyertakan informasi tentang topik.
<name> Opsional Turunan <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 dirujuk dari file yang sebelumnya ada di bagian <data>...</data>. Secara konseptual, file ini dan tabel terkaitnya digunakan untuk mewakili definisi konsep atau data slice. Setiap jenis file data ini dijelaskan secara lebih mendetail di bawah.

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

File dapat dipaketkan dengan set data atau, jika namanya dalam bentuk URL, yang 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 ditentukan di atas:

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

Berikut adalah cara kerja contoh ini:

  • Kecuali jika 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 tersebut. Namun, urutan kolom tidak harus sama dengan 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 di tabel, nilainya diasumsikan tidak ditentukan untuk setiap baris. Tabel di atas, misalnya, menghapus 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 berisi karakter kosong atau hanya berisi spasi kosong).
  • Nilai untuk properti yang mereferensikan konsep lain harus kosong atau merupakan nilai yang valid dari konsep yang direferensikan.
  • Menyertakan nilai dalam tanda kutip ganda bersifat opsional, kecuali jika berisi koma, tanda kutip ganda, atau karakter baris baru.
  • Meng-escape tanda kutip ganda literal yang muncul dalam nilai dengan mengawalinya dengan tanda kutip ganda lainnya.

File Data Slice

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

Contoh

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

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

Berikut cara kerja contoh tersebut:

  • Kolom metrik adalah population. Kolom country dan year adalah kolom dimensi.
  • Setiap nilai kolom dimensi tidak boleh kosong. Hal ini mencakup dimensi waktu. Nilai untuk kolom metrik boleh kosong. Nilai kosong diwakili oleh karakter yang tidak ada.
  • Setiap judul kolom yang mereferensikan suatu konsep (misalnya, kolom pertama pada contoh di atas mereferensikan konsep country) harus sama persis dengan ID unik konsep dalam definisi konsep.
  • Kombinasi nilai dimensi yang unik, misalnya AF, 2000, hanya dapat muncul 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 Multi-Bahasa

Nilai XML yang Diterjemahkan

Anda dapat menggunakan atribut xml:lang dengan setiap elemen <value> di file DSPL Anda. 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 diasumsikan dalam bahasa Inggris.

Contoh berikut menunjukkan AAPT dari set data yang berbahasa Inggris, Bulgaria, Katalan, dan bahasa 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 dapat memberikan terjemahan yang lebih dari sekadar metadata tingkat konsep, yang diterapkan sebagai tambahan (atau sebagai gantinya) pada instance konsep individual. Hal ini sangat berguna jika nilai properti konsep (misalnya nama) bervariasi menurut bahasa.

Untuk memberikan nilai tersebut dalam beberapa bahasa, buat satu kolom di tabel definisi yang sesuai untuk setiap kombinasi properti/bahasa. Kemudian, tautkan kolom ini ke properti dan bahasa terkait dengan menambahkan sekumpulan 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>

Selanjutnya, file CSV untuk countries_table 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 Mappable

Banyak konsep (misalnya: county, negara bagian, dan kota) memiliki instance yang sesuai dengan lokasi geografis. DSPL mendukung geocoding instance ini sehingga akan dapat divisualisasikan dalam diagram peta animasi Google Public Data.

Jika konsep Anda setara dengan Negara-negara Dunia, negara bagian Amerika Serikat, atau wilayah Amerika Serikat, Anda dapat menautkan ke konsep kanonis Google yang sesuai; geocoding eksplisit tidak diperlukan. 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 ini kemudian ditentukan sebagai kolom dalam tabel data definisi konsep yang sesuai.

Hubungan Konsep

Konsep sering dikaitkan dengan konsep lain dengan cara yang terstruktur. Misalnya, satu instance benua dapat menyertakan beberapa instance negara, yang pada gilirannya dapat berisi beberapa instance negara bagian atau provinsi. Mengenkode hubungan ini dalam metadata set data memungkinkan fitur visualisasi yang lebih beragam daripada yang dimungkinkan, misalnya, menampilkan hierarki lokasi yang dapat diciutkan untuk dipilih.

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

Hierarki

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

Sebagai contoh, konsep US County 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 status dua huruf untuk setiap county. Jenis metadata ini memungkinkan Penjelajah Data Publik menampilkan negara bagian dan wilayah sebagai hierarki, fitur yang mempermudah eksplorasi pengguna.

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

Pemetaan

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

Menentukan bahwa satu konsep dipetakan ke konsep lainnya memungkinkan yang pertama mewarisi semua properti dan atribut yang terakhir. Di antara aplikasi lainnya, ini berguna untuk "menautkan" konsep geografis pribadi dengan yang ditentukan dalam set data geografis kanonis:

<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 atribut dan properti tambahan.

Misalnya, 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 penjelasan dan contoh lebih lanjut.

Mengirimkan Set Data

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

  1. Buat direktori.
  2. Simpan file dspl set data di direktori yang Anda buat. Pastikan untuk menggunakan ekstensi .xml.
  3. Simpan semua file .csv lokal 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. Kartu tidak akan dipublikasikan sampai Anda memeriksanya dan memberi tahu kami bahwa dokumen tersebut sudah siap.