DSPL 教學課程

DSPL 代表資料集發布語言。DSPL 中說明的資料集可匯入 Google 公開資料瀏覽器,這項工具可讓您以視覺化方式呈現資料。

注意:您必須擁有 Google 帳戶,才能使用公開資料上傳工具將資料上傳至 Google 公開資料。

這個教學課程會逐步說明如何準備基本的 DSPL 資料集。

DSPL 資料集是內含 XML 檔案和一組 CSV 檔案的套裝組合。CSV 檔案是內含資料集的資料的簡易資料表。XML 檔案會說明資料集的「中繼資料」,包括測量說明等中繼資料 (如資料表之間的參照),以及結構性中繼資料 (例如資料表之間的參照)。中繼資料可讓非專業的使用者探索您的資料,並以視覺化的方式呈現。

理解這個教學課程的唯一必要方法就是瞭解 XML。對於某些資料庫的簡單概念 (例如資料表和主鍵或許也有幫助,但並非必要)。您也可以參考本教學課程和已完成的 XML 檔案完整資料集套裝組合來進行審查。

總覽

開始建立資料集之前,請先大致瞭解 DSPL 資料集包含的內容:

  • 一般資訊:關於資料集
  • 概念:資料集中顯示的「事物」定義 (例如國家/地區、失業率、性別等)
  • Slice:含有資料的概念組合
  • 表格:概念和切片的資料。概念資料表含有列舉,片段資料含有統計資料
  • 主題:用來為資料集按有意義的階層結構整理標籤概念

為了說明這些明顯的抽象概念,請考慮在本教學課程中使用的資料集 (包含虛擬資料):人口與失業統計統計的時間序列 (依國家/地區、美國州/省和性別分類)。

這個範例資料集定義了以下概念

  • country
  • gender
  • 人口
  • 失業率

類別的概念 (如狀態) 與概念資料表相關聯,這個概念會列舉所有可能的值 (加州、亞利桑那等)。概念可能為屬性建立其他資料欄,例如名稱或州/省。

「Slice」會定義資料集中具有統計資料的各種概念組合。區塊包含維度指標。在上圖中,維度是藍色,而指標是橘色的。在這個範例中,gender_country_slice 資料包含 population 指標以及 countryyeargender 維度的資料。另一個片段為 country_slice,為國家/地區提供每年的人口總數 (指標)。

除了維度和指標以外,Slice 也會參照內含實際資料的資料表

現在,讓我們逐步說明如何在 DSPL 中建立這類資料集。

資料集資訊

首先,我們需要為資料集建立 XML 檔案。以下是範例資料集的 DSPL 說明開頭:

<?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"
   xmlns:geo="http://www.google.com/publicdata/dataset/google/geo"
   xmlns:entity="http://www.google.com/publicdata/dataset/google/entity"
   xmlns:quantity="http://www.google.com/publicdata/dataset/google/quantity">

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

  <info>
    <name>
      <value>My statistics</value>
    </name>
    <description>
      <value>Some very interesting statistics about countries</value>
    </description>
    <url>
      <value>http://www.stats-bureau.com/mystats/info.html</value>
    </url>
    </info>

  <provider>
    <name>
      <value>Bureau of Statistics</value>
    </name>
    <url>
      <value>http://www.stats-bureau.com</value>
    </url>
  </provider>
 ...
</dspl>

資料集說明以頂層 <dspl> 元素開始。targetNamespace 屬性包含一個可明確識別這個資料集的 URI。發布資料集時,這個資料集的命名空間尤其重要,因為資料集是資料集的全域 ID,而其他人也能參照該資料集。

請注意,您可以省略 targetNamespace 屬性。在這種情況下,系統會在匯入資料集時自動產生不重複的命名空間。

使用其他資料集中的資訊

透過匯入這些資料集,資料集可重複使用其他資料集的定義和資料。每個 <import> 元素都會指定這個資料集參照的另一個資料集命名空間。

在我們的範例資料集中,我們需要從 http://www.google.com/publicdata/dataset/google/quantity 建立的資料集 (也就是 Google 建立的資料集,其中包含用於定義數值數量的概念) 和timeentitygeo 資料集,分別提供與時間、實體和地理位置相關的定義。

頂端 <dspl> 元素提供命名空間前置字串宣告 (例如xmlns:time="http://...")。需要前置字串宣告才能以簡潔的方式參照其他資料集中的元素。例如,time:year 參照匯入資料集內 year 的定義,其命名空間與前置字串 time 相關聯。

資料集和提供者資訊

<info> 元素包含資料集的一般資訊:名稱、說明和可找到更多資訊的網址。

<provider> 元素包含資料集提供者的資訊,包括名稱以及能夠找到更多資訊的網址 (通常是資料供應商的首頁)。

定義概念

目前,我們已提供資料集的一般資訊,可以開始定義資料集的內容。我們的下一個目標則是加入過去 50 年來,各個國家/地區的人口統計資料。

首先我們要針對人口、國家/地區與年份的概念提供了一些定義。在 DSPL 中,這些定義稱為概念

「概念」是指資料集中顯示的資料類型定義。與特定概念對應的資料值稱為該概念的「執行個體」

人口

我們先從定義人口概念開始。在 DSPL 文件中,概念會參考在資料集和供應商資訊之後的 <concepts> 元素中定義。

以下的人口概念僅包含所有概念所需的必要資訊:id (專屬 ID)、nametype

<dspl ...>
  ...
  <concepts>
    <concept id="population">
      <info>
        <name>
          <value>Population</value>
        </name>
      </info>
      <type ref="integer"/>
    </concept>
  ...
  </concepts>

這個範例的運作原理如下:

  • 每個概念都必須提供一個可明確識別資料集內概念的 id。這表示同一個資料集中定義的兩個概念無法具有相同的 ID。
  • 與資料集及其提供者一樣,<info> 元素會提供概念的文字資訊,例如名稱和說明。
  • <type> 元素可指定概念的「執行個體」資料類型 (也就是所謂的「值」)。在此範例中,population 的類型為 integer。DSPL 支援下列資料類型:
    • string
    • integer
    • float
    • boolean
    • date

國家/地區

現在,讓我們來編寫國家/地區概念的定義:

<concept id="country">
  <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>
  <table ref="countries_table" />
</concept>

國家/地區概念的定義與先前的定義相同,包含 idinfotype

概念值

國家/地區等分類概念會列舉所有可能的執行個體。也就是說,您可以列出可參照的所有國家/地區。不過,每個國家/地區都需要有專屬識別碼。 這個範例使用 ISO 國家/地區代碼來識別國家/地區;這些代碼的類型為 string

在這個範例中,您不需要使用 ISO 代碼,也可以直接使用國家/地區名稱。然而,名稱會因語言而異,而且可能會隨時間而改變,而且各個資料集中的名稱不一定一致。對國家/地區及一般類別的概念而言,建議您選擇簡短、穩定、常用且常用的語言識別碼 (如果有的話) 這類 ID。

概念屬性

除了 id 以外,國家概念也包含指定國家/地區名稱的 <property> 元素。換句話說,國家/地區名稱 (「愛爾蘭」) 是國家/地區的資產,具有 id IE。屬性是 DSPL 如何提供有關概念執行個體的其他結構化資訊。

與概念本身一樣,屬性具有 idinfotype

概念資料

最後,國家概念包含 <table> 元素。這個元素參照的表格會列舉所有國家/地區清單。

使用概念在某些概念上都很合理,但對其他概念沒有幫助。例如,計算概念人口的所有可能值都是不合理的。不過,如果您打算參照某個概念的某個資料表,該資料表必須包含該概念的所有例項。舉例來說,該表格必須列出各個國家/地區,而不能只列舉幾個範例。

資料集定義 countries_table 資料表的方式如下:

...
<tables>
  <table id="countries_table">
    <column id="country" type="string"/>
    <column id="name" type="string"/>
    <data>
      <file format="csv" encoding="utf-8">countries.csv</file>
    </data>
  </table>
  ...
</tables>

國家/地區表格會指定資料表的欄及其類型,並參照包含資料的 CSV 檔案。您可以使用這個 CSV 檔案組合及上傳這個 CSV 檔案,或是透過 HTTP、HTTPS 或 FTP 遠端存取。在後面的例子中,您會將 countries.csv 替換為網址,例如 http://www.myserver.com/mydata/countries.csv

無論資料儲存在何處,CSV 檔案看起來會像這樣:

country, name
AD,      Andorra
AF,      Afghanistan
AI,      Anguilla
AL,      Albania
US,      United States

表格第一列會列出資料欄 ID,如 DSPL table 定義中所述。以下每列都會對應至一個國家/地區的概念。如果概念有資料表,則資料表必須包含該概念的所有「執行個體」;在這種情況下,必須列出所有國家/地區。

這些資料欄會根據 ID 對應至國家/地區概念及其屬性。第一欄的 ID country 與概念 ID 相符。這表示此欄包含國家/地區概念所定義的不重複國家/地區 ID。下一欄會對應至國家/地區概念的 name 屬性。此欄中的值與 name 屬性的值相符。

概念資料表的 CSV 資料必須符合以下規定:

  • 資料檔案第一行的欄標題必須「完全符合」概念的「id」概念,以及與資料相關聯的概念屬性 (但順序可能不同)。
  • 每一列的值都必須與概念的屬性數量完全相同 (即使值是空白的)。
  • 概念的 id 欄位 (此處為國家/地區代碼) 的每個值都不得重複,且不可為空白 (空白欄位是零或只有空白字元的欄位)。
  • 參照其他概念的屬性值必須為空白或為所參照概念的有效值。
  • 包含半形逗號、雙引號或換行字元的值必須以雙引號括住。
  • 值內的所有常值雙引號字元都必須緊接在另一個雙引號後方。

我們對於國家/地區人口資料的最後一個概念是代表年份的概念。我們不會定義新的概念,而是使用所匯入的資料集中的一年概念,也就是「http://www.google.com/publicdata/dataset/google/time」。為了達成這個目標,我們必須將其參照為 time:year,其中 time 代表所參照的資料集,而 year 則能識別概念。

標準概念

time:year 是 Google 定義的一小部分標準概念。標準概念提供時間、地理位置、數值數量、單位等基本定義。

事實上,上述的國家/地區概念是以標準概念的形式存在。此處僅供說明之用。 請盡可能在資料集中使用標準概念,例如直接使用或延伸這些概念 (詳情請參閱下文)。標準概念可讓資料與其他資料集相互比較,並在公開資料瀏覽器中啟用資料集的功能。舉例來說,要建立動畫資料或在地圖上顯示地理資料,分別使用 timegeo 標準概念。

第一切片

現在,我們現在已經有了人口、國家/地區與年份的相關概念,現在應該要全心投入!

因此,我們需要建立可合併這些元素的投影片。在 DSPL 中,配量是指存在資料的概念組合。

何不僅使用正確的資料欄來建立資料表?因為配量會根據其概念擷取資料集資訊。隨著我們建立的資料集數量增加,這會更明顯。

Slice 會顯示在 DSPL 檔案的 <slices> 元素下方,該元素必須放在 concepts 區段之後。

<slices>
  <slice id="countries_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="countries_slice_table"/>
  </slice>
</slices>

就像概念一樣,每個片段都有一個 id (countries_slice),專門用於識別資料集內的配量。

區塊包含兩種概念參照:維度指標。指標的值會隨維度的值而有所不同。此處的 population (指標) 值會因維度 countryyear 而異。

就像概念一樣, Slice 本身也具有包含該資料表資料的資料表參照。參照的資料表必須取得 Slice 的每一個維度與指標一個資料欄。如同概念,這個區塊的維度和指標會對應至具有相同 ID 的資料表欄。

Slice 資料表

人口片段的表格會顯示在 DSPL 檔案的 tables 區段中:

<tables>
  ...
  <table id="countries_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>

請注意,year 資料欄隨附 format 屬性,用於指定年分的格式。支援的日期格式是由 Joda DateTime 格式定義的格式。

countries_slice 資料表會指定資料表的資料欄類型及其類型,且指向包含資料的 CSV 檔案。CSV 檔案內容如下:

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

資料表的每一列都包含維度 countryyear 的不重複組合,以及 population 指標的對應值 (例如 1960 年阿富汗人口 - 指標 - 維度)。

請注意,country 欄的值與 country 概念的值/ID 相符,也就是國家/地區的 ISO 3166 雙字母代碼。

Slice 的 CSV 資料必須符合下列限制:

  • 維度欄位的值 (例如 countryyear) 不得留空。指標欄位的值 (例如 population) 可以是空的。空白值不會以任何字元表示。
  • 參照概念的維度欄位的每個值都必須存在於該概念的資料中。舉例來說,country 概念資料表必須包含 AF 值。
  • 每個維度值的不重複組合 (例如 AF, 2000) 只能出現一次。
  • 資料應按照非時間維度欄 (以任何順序排列) 排序,接著可依照其他任何資料欄加以排序。例如,在包含 [date, dimension1, dimension2, metric1, metric2] 資料欄的資料表中,您可以依 dimension1dimension2date 排序資料,但無法使用 date 排序維度。

摘要

此時,DSPL 中的資訊足以充分反映國家/地區人口資料。回顧一下:

  • 建立資料集及其提供者的 DSPL 標頭和說明
  • 建立母體和國家/地區的概念。 建立 CSV 檔案,列舉所有國家/地區及其名稱。
  • 根據 Google 的匯入時間資料集,根據先前定義的年份概念來建立國家/地區的人口數變化。

在本教學課程的其餘部分,我們將在更多片段中新增更多維度,並依照主題分組更多指標,讓資料集更加豐富。

新增維度:美國

現在讓我們來新增美國各州人口人口資料,讓資料集更加豐富。首先我們需要定義狀態的概念。這看起來就像 我們先前定義的國家/地區概念一樣。

<concept id="state" extends="geo:location">
  <info>
    <name>
      <value>state</value>
    </name>
    <description>
      <value>US states, identified by their two-letter code.</value>
    </description>
  </info>
  <property concept="country" isParent="true" />
  <table ref="states_table"/>
</concept>

概念擴充功能和屬性參考資料

狀態概念介紹了 DSPL 的幾項新功能。

首先,狀態會「擴充」另一個概念 geo:location (在資料集開頭匯入的外部地理資料集中定義)。在語意方面,這表示 stategeo:location 種類。因此會繼承 geo:location 的所有屬性和屬性。具體來說,位置定義了 latitudelongitude 的屬性;擴充先前的概念之後,這些屬性也會套用到狀態。此外,由於位置沿用自 entity:entity,因此狀態也會取得後者的所有屬性,包括 namedescriptioninfo_url

注意:從技術上來說,先前定義的國家/地區概念也應該從 geo:location 延伸。為求簡單起見,我們已省略這個點;不過,我們已在最終 XML 檔案中加入國家/地區繼承位置。

注意:您可以在自己的資料集中使用 extends 建構函式,以重複使用其他資料集定義的資訊。使用 extends 會要求概念的所有執行個體都是您要擴充概念的有效執行個體。擴充功能可讓您新增其他屬性和屬性,並將一組執行個體限制為延伸概念的子集執行個體。

除了繼承外,狀態屬性還引進概念參照的概念。請特別注意,狀態概念具備稱為 country 的屬性,此屬性參照了我們先前建立的國家/地區概念。方法是使用 concept 屬性。請注意,這個屬性不會提供 ID,只會提供概念參照。這相當於建立與參照概念 ID 相同的值 (例如country 範例中)。系統會擷取參照屬性 isParent="true" 以擷取狀態和縣市之間的階層關係。一般來說,應該以階層方式呈現具有階層關係關係 (例如地理位置) 的維度,並使用「isParent」屬性參照子項父項的屬性。

狀態的資料表定義如下所示:

<tables>
  ...
  <table id="states_table">
    <column id="state" type="string"/>
    <column id="name" type="string"/>
    <column id="country" type="string">
      <value>US</value>
    </column>
    <column id="latitude" type="float"/>
    <column id="longitude" type="float"/>
    <data>
      <file format="csv" encoding="utf-8">states.csv</file>
    </data>
  </table>
  ...
</tables>

[國家/地區] 欄中的所有狀態皆保持不變。因此,請在 DSPL 中加以指定,以免資料中的每個資料重複。另請注意,我們已納入 namelatitudelongitude 的資料欄,因為狀態是從 geo:location 繼承了這些屬性。另一方面,某些繼承的屬性 (例如description)。

CSV 檔案內容如下:

state, name,        latitude,  longitude
AL,    Alabama,     32.318231, -86.902298
AK,    Alaska,      63.588753, -154.493062
AR,    Arkansas,    35.20105,  -91.831833
AZ,    Arizona,     34.048928, -111.093731
CA,    California,  36.778261, -119.417932
CO,    Colorado,    39.550051, -105.782067
CT,    Connecticut, 41.603221, -73.087749
...

由於我們已有人口與年份的相關概念,可以重複使用這些概念來定義新的人口狀態。

<slices>
  <slice id="states_slice">
    <dimension concept="state"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="states_slice_table"/>
  </slice>
</slices>

資料表定義如下:

<tables>
  ...
  <table id="states_slice_table">
    <column id="state" type="string"/>
    <column id="year" type="date" format="yyyy"/>
    <column id="population" type="integer"/>
    <file format="csv" encoding="utf-8">state_slice.csv</file>
  </table>
  ...
</tables>

CSV 檔案內容如下:

state, year, population
AL,    1960, 9616353
AL,    1961, 9799379
AL,    1962, 9989846
AL,    1963, 10188299

既然如此,我們何必建立新的 Slice,而不是在前一個片段中新增維度?

維度的州與國家/地區維度均不正確,因為部分資料列適用於國家/地區資料,部分資料列則用於狀態資料。部分維度會有「孔」,這是不允許的 (提醒您,只有指標才能包含指標,而不支援維度)。

維度是 Slice 的「主鍵」,這表示 每個資料列都必須針對所有維度提供值,且兩個資料列中 所有維度的值不能完全相同。

新增指標:失業率

現在,讓我們在資料集中加入另一個指標:

<concept id="unemployment_rate" extends="quantity:rate">
  <info>
    <name>
      <value>Unemployment rate</value>
    </name>
    <description>
      <value>The percent of the labor force that is unemployed.</value>
    </description>
    <url>
      <value>http://www.bls.gov/cps/cps_htgm.htm</value>
    </url>
  </info>
  <type ref="float/>
  <attribute id="is_percentage">
    <type ref="boolean"/>
    <value>true</value>
  </attribute>
</concept>

這項指標的 info 區段包含名稱、說明和網址 (連結至美國勞工統計局)。

這個概念也擴充了 quantity:rate 標準概念。數量資料集定義了用來呈現數值數量的核心概念。在您的資料集中,您應該擴充適當的數量概念來建立數值概念。因此,從技術上來說,上述的 population 概念應從 quantity:amount 延伸。

概念屬性

此外,這個概念也介紹了屬性的結構。在此範例中,系統會使用屬性表示 unemployment_rate 為百分比。is_percentage 屬性沿用自這個概念擴充的 quantity:rate 概念。「公開資料瀏覽器」會使用這些資訊,在以視覺化方式呈現資料時呈現百分比符號。

屬性會提供一般的機制,可將鍵/值組合附加至概念 (與屬性相比,將其他值與概念的「執行個體」建立關聯)。屬性和概念和屬性一樣,都有 idinfotype。與屬性一樣,也可以參照其他概念。

屬性不僅適用於預先定義的一般項目,例如數值屬性。您可以自行定義概念的屬性。

新增美國失業率資料

我們已經準備好為美國各州新增失業率資料。由於失業率是指標,而且我們已有州的人口資料,因此可以只新增至我們為州和年維度建立的片段:

<slices>
  ...
  <slice id="states_slice">
    <dimension concept="state"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <metric concept="unemployment_rate"/>
    <table ref="states_slice_table"/>
  </slice>
  ...
</slices>

...,然後在資料表定義中新增其他資料欄:

<tables>
  ...
  <table id="states_slice_table">
    <column id="state" type="string"/>
    <column id="year" type="date" format="yyyy"/>
    <column id="population" type="integer"/>
    <column id="unemployment_rate" type="float"/>
    <data>
      <file format="csv" encoding="utf-8">state_slice.csv</file>
    </data>
  </table>
  ...
</tables>

... 以及 CSV 檔案:

state, year, population, unemployment_rate
AL,    1960, 9616353,    5.1
AL,    1961, 9799379,    5.2
AL,    1962, 9989846,    4.8
AL,    1963, 10188299,   6.9

如先前所述,維度的每個部分都會形成一個主鍵。此外,每個資料集都只能包含一個特定維度組合。這些維度可用的所有指標都必須屬於同一部分。

更多維度:依性別細分的人口數

讓我們依照國家/地區的性別細分資料來充實資料集。到目前為止,您將會開始學習以下技巧... 首先,我們要新增性別的概念:

<concept id="gender" extends="entity:entity">
  <info>
    <name>
      <value>Gender</value>
    </name>
    <description>
      <value>Gender, Male or Female</value>
    </description>
    <pluralName>
      <value>Genders</value>
    </pluralName>
    <totalName>
      <value>Both genders</value>
    </totalName>
  </info>
  <type ref="string"/>
  <table ref="genders_table"/>
</concept>

性別概念 info 區段包含 pluralName,提供用於參照多個性別概念的例項。info 區段還包含 totalName,可提供文字,用來參照整體性別概念的所有例項。公開資料瀏覽器會使用這兩種資料來顯示性別概念的相關資訊。一般來說,對於要做為維度使用的概念,通常都應加以提供。

請注意,性別概念也是從 entity:entity 延伸而來。對於用來當做維度的概念來說,這是相當不錯的做法,可讓您為各個概念例項新增自訂名稱、網址及顏色。

性別概念是指 genders_table 資料表,其包含可能的性別值以及顯示名稱 (在此省略)。

如要按照性別新增資料集至資料集,我們必須建立新的片段 (請記住,每個可用維度組合都對應到資料集中的一個配量)。

<slice id="countries_gender_slice">
  <dimension concept="country"/>
  <dimension concept="gender"/>
  <dimension concept="time:year"/>
  <metric concept="population"/>
  <table ref="countries_gender_slice_table"/>
</slice>

該片段的資料表定義如下所示:

<table id="countries_gender_slice_table">
  <column id="country" type="string"/>
  <column id="gender" type="string"/>
  <column id="year" type="date" format="yyyy"/>
  <column id="population" type="integer"/>
  <data>
    <file format="csv" encoding="utf-8">gender_country_slice.csv</file>
  </data>
</table>

表格的 CSV 檔案如下所示:

country, gender, year, population
AF,      M,      1960, 4808176
AF,      F,      1960, 4808177
AF,      M,      1961, 4899689
AF,      F,      1961, 4899690...

相較於之前的國家/地區、人口和失業率部分,這個維度有其他維度;人口指標的每一個值都只對應特定國家/地區和年份,也對應於特定性別。

請注意,我們建立了「稀疏」資料集。並非所有指標都適用於所有維度:人口是按國家/地區計算,並按年顯示,而失業率僅適用於國家/地區。按性別細分的資料僅適用於各國家/地區人口;不適用於失業率指標,不適用於州/省維度。也可以在資料層級建立特定層級的資料,某些指標沒有特定維度值的值,但在 DSPL 中則無法呈現。

主題

我們會在資料集中使用的 DSPL 最後一個功能是 topics。主題可用來按照階層結構將概念分類,供應用程式使用,可幫助使用者導覽您的資料。

在 DSPL 檔案中,主題會顯示在概念前方。以下是主題階層範例:

<dspl ... >
  ...
  <topics>
    <topic id="geography">
      <info>
        <name>
          <value>Geography</value>
        </name>
      </info>
    </topic>
    <topic id="social_indicators">
      <info>
        <name>
          <value>Social indicators</value>
        </name>
      </info>
    </topic>
    <topic id="population_indicators">
      <info>
        <name>
          <value>Population indicators</value>
        </name>
      </info>
    </topic>
    <topic id="poverty_and_income">
      <info>
        <name>
          <value>Poverty & income</value>
        </name>
      </info>
    </topic>
    <topic id="health">
      <info>
        <name>
          <value>Health</value>
        </name>
      </info>
    </topic>
  </topics>

您可以視需要為主題建立更深的巢狀結構。

如果要使用主題,只需從概念定義中參照這些主題,如下所示:

<concept id="population">
  <info>
    <name>
      <value>Population</value>
    </name>
    <description>
      <value>Size of the resident population.</value>
    </description>
  </info>
  <topic ref="population_indicators"/>
  <type ref="integer"/>
</concept>

一個概念可以參照多個主題。

提交資料集

建立資料集之後,下一步是壓縮資料集,並將 ZIP 檔案上傳至 Google Public Data Explorer 工具。如果您遇到任何問題,請查看常見問題,其中含有最常見的上傳問題。

如有需要,您也可以下載與本教學課程相關聯的完整 XML 檔案完整資料集組合

接下來該做什麼

恭喜您成功建立第一個 DSPL 資料集!現在,您已瞭解基本知識,建議您閱讀《開發人員指南》,這些文件以及其他文件,說明多語言支援和可對應概念等「進階」DSPL 功能。

建議您參考更多範例資料集