DSPL 開發人員指南

DSPL 代表資料集發布語言。這是一種表示中繼資料 (資料集的相關資訊,例如資料集名稱和提供者,以及包含和顯示概念的概念) 與實際「資料」的表示法格式。以這種格式描述的資料集可匯入 Google 公開資料瀏覽器,這項工具可讓您以視覺化方式呈現資料。

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

本文旨在協助資料擁有者在「公開資料瀏覽器」中提供其內容。除了深入探索教學課程外,您也可以深入瞭解 DSPL 結構定義和支援的功能。僅列舉 XML 的基本知識,但對關聯資料庫的知識也非常實用。

雖然這並非必要,但還是建議您詳閱教學課程,因為本文的教學內容較短,因此較容易理解。

總覽

DSPL 資料集是內含 XML 檔案和一組 CSV 檔案的 .zip 檔案。CSV 檔案是含有資料集資料的簡易資料表,而 XML 檔案則是說明資料集的中繼資料。後者包含資訊中繼資料 (如測量方式說明) 和結構中繼資料 (例如資料表之間的參照)。這個中繼資料可讓非專業的使用者探索您的資料並以視覺化方式呈現。

處理

一般來說,建立 DSPL 資料集的程序如下 (部分步驟可能會同時執行):

  1. 建立 DSPL XML 檔案。
  2. 找出要在資料集中使用的任何外部資料來源。
  3. 定義概念、 Slice 和 (選用) 主題。反覆更新 DSPL 檔案的內容。
  4. 將來源資料匯出為 .csv 檔案。
  5. 建立 DSPL 資料集。
  6. 將資料集提交給 Google。

XML 結構

總覽

DSPL XML 檔案定義了資料集的中繼資料,包括概念、配量、主題和資料表之間的結構關係。雖然您可以手動建立這個檔案,但資料處理工具和指令碼可以大幅簡化處理流程。在新視窗中查看 DSPL 檔案範例

檔案包含數個區段,詳情請見下表。在下表之後,我們會詳細介紹每個選項。

章節 摘要 更多資訊
標頭和匯入 資料集其他元素的父項。包含資料集的目標命名空間 (即 ID),以及任何已匯入資料集的命名空間。 說明文件
資料集資訊 資料集的名稱、說明和網址。 說明文件
供應商資訊 資料集供應商的名稱、說明和網址。 說明文件
概念

資料集中顯示的「事物」定義 (例如: 國家/地區、失業率、性別等)

每個概念都有專屬的 ID,可以由配量和表格參照。

說明文件
Slice

資料集中具有統計資訊的概念組合。每個區塊都包含維度指標

Slice 會參照參考概念和資料表,其中包含實際資料。每個區塊都有專屬的 ID,可供包含實際資料的資料表參照。

說明文件
資料表 定義概念和 Slice 的資料。概念資料表會儲存列舉資料,片段資料表則含有統計資料。資料表以 XML 檔案定義,並指向內含實際資料的 .csv 檔案。 說明文件
主題 用於整理資料集概念的類別。雖然這些做法並非必要,但對瀏覽資料的使用者而言非常實用。 說明文件

標題和匯入

宣告 Public Data 命名空間

DSPL 資料集是以頂層 <dspl> 元素開始。此名稱可用來包含所有資料集資訊,並指出檔案中所有即將使用的命名空間。範例如下:

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

命名空間是一組專屬識別碼,可以與 XML 架構 (一組 XML 元素和屬性) 建立關聯。targetNamespace 提供用於識別資料集的 URI。這個 URI 不一定要指向實際資源,但建議將 URI 解析為描述內容或資料集的文件。

您不需要提供 targetNamespace。如果沒有,則系統會在匯入時自動產生一個。

targetNamespace 屬性後面是一系列 xmlns 屬性,用於指定將在檔案中使用的其他 XML 結構定義。每個 DSPL 檔案都必須包含 Google 公開資料結構定義,其 URI 為「http://schemas.google.com/dspl/2010」,並會用來當做預設命名空間。其中也應包含標準 W3 XML 架構 (以 http://www.w3.org/2001/XMLSchema-instance 識別)。如下一節所述,您可以新增其他命名空間,納入其他資料集的資訊。

匯入其他資料集命名空間

資料集可重複使用其他資料集的定義和資料。例如,Google 提供多種基本資料集,用於定義常出現在使用者資料中的概念。例如,大多數資料集都需要一個能夠呈現年份的概念。與其定義新概念,您可以使用「http://www.google.com/publicdata/dataset/time」資料集的年份概念。詳情請參閱標準概念頁面。

如要使用外部資料集,請將 <import> 元素新增到命名空間宣告後方的 DSPL 檔案,並指出您要匯入的資料空間,如下所示:

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

接著,將匯入的命名空間 (本例為 time="http://www.google.com/publicdata/dataset/google/time") 新增至檔案頂端的命名空間宣告中,如下所示:

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

您的 DSPL 檔案現在可以參照 Google 公開資料時間資料集的元素。請對每個需要參照的資料集重複這項程序。

參照外部資料集的內容

匯入其他資料集後,您必須能夠參照該資料集的概念、配量和資料。如要這麼做,您可以使用 prefix:other_id 格式的參照,其中 prefix 是外部資料集命名空間使用的前置字串。

以下是 time 資料集中 year 概念的參照範例 (如上所述):

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

資料集資訊

<info> 元素包含資料集的描述性資訊。以下列出相關的 XML 元素範例和詳細資訊。

範例

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

元素

元素 是否必要? 說明
<info> 包含資料集的所有描述性資訊。包含子元素 <name><description><url>
<name> <info>」的孩子。包含子資料集 <value>,可用來識別資料集名稱。
<description> 選用 <info>」的孩子。包含子元素 <value>,其中包含資料集的文字說明。
<url> <info>」的孩子。可連結到資料集的網址連結。

供應商資訊

<provider> 元素會列出資料集提供者的相關資訊。以下列出相關的 XML 元素範例和詳細資訊。

範例

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

元素

元素 是否必要? 說明
<provider> 包含資料集供應商的所有描述性資訊。包含子元素 <name><url>
<name> 選用 <provider>」的孩子。包含子元素 <value>,用於識別資料集提供者的名稱。
<url> 選用 <info>」的孩子。可加入資料集提供者相關資訊的連結。

概念

說明

每個資料集都包含一或多個概念。概念是指資料集中顯示的資料類型定義。例如,包含人口人口資料的資料集可以包含國家/地區、州/省、人口和年份。與特定概念對應的資料值稱為該概念的「執行個體」。概念通常在資料集中描述,但部分概念 (例如時間和年份) 可以在外部資料集中描述。

每個概念都可以有一或多個「屬性」。屬性是概念執行個體的特徵,其會隨著時間穩定。舉例來說,國家/地區概念可包含 namepopulationcapital 屬性。

此外,概念也可以包含一或多個屬性。屬性可提供概念層級的資訊,而不是個別執行個體的資訊。舉例來說,如果資料集使用失業率的概念,您可以使用屬性來表示這個概念是百分比。屬性的常見用途是提供單元資訊。

範例

以下是採用專屬 ID countryname 屬性的國家/地區概念範例。概念 ID 可用於在 Slice 和資料表中參照這些概念。

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

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

  • 這段程式碼說明概念國家/地區,其 ID 為 country,屬性為 namecontinentcapital
  • 這個概念延伸了 geo:location (地點的標準概念)。擴充 geo:location 後,country 會繼承擴充概念所定義的所有屬性和屬性:屬性名稱、說明、網址、緯度和經度。country 可以重新定義部分屬性和屬性,前提是定義與擴充概念提供的屬性一致。
  • 概念 <info> 元素說明瞭概念的相關重要資訊。這項資訊會顯示在公開資料探索工具的資料集到達網頁上。
  • <type> 元素是指內容類型。在這種情況下,它是字串,但可能有所不同。「人口」這個概念的類型是 integer;這個概念的「Eurovision winner」類型可以是布林值。
  • <property> 元素會說明概念的每個屬性,包括其專屬 ID (id)、infotype。屬性也可以「參照」概念,表示其值是這些概念的有效例項。
  • 這個概念參照的資料資料表指向包含實際資料的 CSV 檔案。資料表的參照方式如下:<table ref="countries_table"/>

    如果概念參照資料表,相關聯的資料檔案必須列出該概念的所有執行個體。例如,您無法建立僅列出資料集中幾個國家/地區的資料表。(如果有些國家/地區不在乎,您可另外建立一個用來說明這些國家/地區的概念。例如 mycountries)。

元素

元素 是否必要? 說明
<concepts> 頂層元素。包含所有 <concept> 元素。
<concept> 用於識別概念。必要屬性 id 的值在資料集內的概念不得重複。如果概念參照概念資料表,id 的值必須符合資料表中說明概念的資料欄標題。extends 屬性可用來表示這個概念能夠擴充另一個概念。extends 的值必須與同一個資料集中定義的概念 ID 相符,或者採用 prefix:concept_id 的格式,其中 concept_id 是匯入 prefix 相關聯的外部資料集中定義的概念 ID。
<info> 選用 包含概念的相關描述性資訊。
<name> <info>」的孩子。概念名稱。子元素 <value> 包含文字,例如 Country
<description> 選用 <info>」的孩子。包含子元素 <value>,其中包含概念的文字說明。
<url> 選用 <info>」的孩子。包含子元素 <value>,其中包含概念網址。
<pluralName> 選用 <info>」的孩子。概念的複數名稱。子元素 <value> 包含文字,例如 Countries
<totalName> 選用 <info>」的孩子。概念所有例項的組合名稱。子元素 <value> 包含文字 - 就 country 概念而言,例如 World
<type> 選用 指出概念描述的內容類型。必要屬性 ref 具有下列允許的值:
  • string
  • 浮動
  • 整數
  • date
  • 布林值
如果概念擴充了另一個概念,該類型可能會遭到忽略,在這種情況下,該類型會沿用擴充概念。
<property> 選用

概念的屬性,例如 capital。 必要屬性 id 的值在概念中不得重複。選用的 concept 屬性可用來表示這個屬性的值是特定概念的執行個體。如果指定 concept,則可省略 id;其值以默示定義為所參照概念的 ID (例如,<property concept="geo:country"/> 相當於 <property id="country" concept="geo:country"/>)。

屬性可包含布林值 isParent 屬性,表示概念執行個體與這個屬性值之間的階層關係具有階層性質。

屬性可能包含布林 (值) 的 isMapping 屬性,表示概念的執行個體和屬性值之間有一對一。

屬性可以指定巢狀 infotype,如同對概念的定義一樣。如果屬性並未指定 concept 屬性,則必須使用 type 屬性,且必須與所參照概念的類型相符。

<attribute> 選用

概念的屬性。屬性代表概念的其他資訊 (例如GDP 為一個百分比)。 必要屬性 id 的值在概念中不得重複。選用 concept 屬性可用於表示這項屬性的值是特定概念的執行個體。如果已指定 concept,則可省略 id。其值會以隱含定義為所參照概念的 ID。(例如:<attribute concept="unit:unit"/> 相當於 <attribute id="unit" concept="unit:unit"/>

屬性可指定巢狀 infotype,其定義類似概念概念。如果屬性並未指定 concept 屬性,則必須使用 type 屬性,且必須與所參照概念的類型相符。

<table> 選用 用於識別包含概念資料的資料表。必要的 ref 屬性值必須與相關 <table> 元素中指定的資料表 ID 相符。

Slice

說明

配量是指存在資料的概念組合。配量包含兩種概念參照:維度指標。維度是用來區隔或篩選資料的概念,另一方面,指標則說明與每個資料點相關聯的觀察值或值。

一般而言,維度是類別型,指標則是非類別、時間變化的數值。每種原型的範例如下所示:

  • 維度:國家/地區、州/省、縣市、區域、年度、月份、性別、年齡類別、產業區隔
  • 指標:人口、GDP、失業率、素養、收益、費用、價格

範例

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

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

  • 這個區塊代表各國家/地區的人口數。
  • 其指標為 population,維度為 countryyear。每個維度都是已在其他位置定義的概念。概念 country 和指標 population 與目前片段相同的資料集位於相同資料集中,如下所示:concept="country"
  • 概念 year 存在於匯入資料集的時間內,以概念名稱之前使用的前置字串 (year) 表示,如下所示:concept="time:year"
  • 資料片段參照的 CSV 檔案會指向包含實際資料的 CSV 檔案。資料表的參照方式如下:<table ref="country_slice_table"/>。(請參閱上方的匯入資料集的相關資訊)。

注意:一般來說,如果您將指標維持在最低限度,而是建立有意義的維度,這個資料集就會更有彈性。例如,不要建立 Female UnemploymentMale Unemployment 指標,請建立單一指標 Unemployment,並新增包含執行個體 FemaleMale 的維度 Gender

元素

元素 是否必要? 說明
<slices> 頂層元素。包含所有 <slice> 元素。
<slice> 選用 用於識別 Slice。必要屬性 id 的值在配量中不得重複。
<dimension> 選用 以參照概念的方式定義片段的維度。必要屬性 concept 的值必須與概念的專屬 ID 完全相符,如果概念隸屬於外部匯入資料集,請使用有效的前置字串。
<metric> 選用 透過參照概念,定義 Slice 的指標。必要屬性 concept 的值必須與概念的專屬 ID 完全相符,如果概念隸屬於外部匯入資料集,請使用有效的前置字串。
<table> 用於識別包含切片資料的資料表。必要 ref 屬性的值必須與相關 <table> 元素中指定的資料表 ID 相符。
<mapDimension> 選用 <table>」的孩子。包含 concepttoColumn 屬性;第一個值是 Slice 中的一個維度,第二個值則是與前一欄對應的表格欄。
<mapMetric> 選用 <table>」的孩子。包含屬性 concepttoColumn;第一個值是 Slice 中的一個指標,第二個值則是與前一個資料欄相對應的資料表資料欄。

資料表

說明

DSPL 檔案的 tables 區段可識別資料集內的資料表。這些概念可按概念參考,或以片段表示。每個 <table> 元素都會指定資料表資料欄及其類型,並指向包含資料表資料的 CSV 檔案。

範例

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

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

  • 此範例說明 country_slice_table 資料表。資料表含有 countryyearpopulation 資料欄。
  • 資料表中的每一欄都有專屬的 ID,由 id 屬性定義。此 ID 必須與相關資料檔案中的適當資料欄標題完全相符。
  • 選用的 type 屬性值會定義每個資料欄的資料類型。
  • <data> 元素會描述含有資料表資料的實際 .csv 檔案 (country_slice.csv)。檔案格式一律為 csv

元素

元素 是否必要? 說明
<tables> 頂層元素。包含所有 <table> 元素。
<table> 用於識別表格。必要屬性「id」的值在資料表中不得重複。
<column> 選用 <table>」的孩子。資料表所含資料欄的相關資訊。並包含下列屬性:
  • id (必填):資料欄的 ID。
  • type (選用):指定資料欄中資訊的資料類型。允許的值為 stringfloatintegerdateboolean
<data> 選用 <table>」的孩子。資料表參照的資料檔案。如果檔案名稱的格式為網址 (例如http://...)。必要屬性 format 的值一律為 csv。雖然 encoding 為選用屬性,但您的 .csv 檔案必須使用 UTF-8 編碼。

主題

說明

主題會按照階層分類概念,讓使用者更輕鬆地瀏覽您的資料集。

<topics> 元素必須放在 DSPL 檔案中的 <concepts> 元素之前。(元素的順序十分重要,如果元素以錯誤的順序顯示,您可能無法上傳資料集)。如要使用主題,請參照概念定義。

範例

以下是主題定義範例:

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

...以下是某個主題的參考範例:

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

您可以建立巢狀主題,一個概念可以參照多個主題。

元素定義

元素 是否必要? 說明
<topics> 頂層元素。包含所有 <topic> 元素。
<topic> 用於識別主題。資料集中必要屬性 id 的值不得重複。
<info> 選用 <topic>」的孩子。包含特定主題的相關資訊。
<name> 選用 <info>」的孩子。其子項元素 <value> 會指定主題名稱。

DSPL 資料檔案

除了 XML 中繼資料檔案之外,DSPL 資料集也可以包含一或多個 CSV 格式的資料檔案。每個資料檔案都支援資料集中的資料表,並以舊版的 <data>...</data> 區段參照。從概念上來說,這些檔案及其相關資料表是用來代表「概念定義」或「投影片資料」。以下將詳細說明這些資料檔案類型。

請注意,無論用途為何,所有資料檔案都必須以半形逗號分隔 (CSV) UTF-8 文字檔。檔案只能包含純文字;不得包含 HTML。您可以自行建立資料檔案,但實際上,您必須在包含原始資料來源的工具 (例如試算表) 或匯出的檔案本身,對資料進行按摩。

檔案可以與資料集組合在一起;如果名稱的格式是網址,則可從遠端來源透過 HTTP、HTTPS 或 FTP 擷取。

概念資料檔案

概念資料檔案包含各個概念的相關資訊。概念定義使用 <table> 元素來參照這個檔案。

範例

以下是上述定義的 country 概念資料表範例:

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

此範例的運作原理如下:

  • 除非已指定對應,否則資料檔案的第一行 (欄標題) 必須與概念 ID 及資料相關概念的適當屬性 ID 完全相符。不過,在資料檔案和概念表格中,資料欄的順序不必相同。在這種情況下,第一欄與概念 country 相關聯,第二個資料欄則與屬性 name 相關聯。
  • 屬性欄是選擇性的;如果屬性沒有資料表中的資料欄,系統會假設每個資料列的值都未定義。例如,上表省略 latitudelongitude 屬性的欄,因此國家/地區無法對應。
  • 概念 ID 欄位的每個值 (在此範例中為 country) 不得重複,且不可為空白 (空白欄位是零或只有空白字元的一個欄位)。
  • 參照其他概念的屬性值必須為空白或為所參照概念的有效值。
  • 您可以選擇將雙引號括住的值 (除非其中包含半形逗號、雙引號或換行字元)。
  • 在值前面加上另一個雙引號,以逸出逸出常值雙引號。

Slice 資料檔案

Slice 資料檔案包含每個片段的相關資訊。Slice 定義使用 <table ref="..."> 元素來參照 <table> 定義,後者則用於識別這個檔案。

範例

以下是含有上述 population_by_country 配量資料的 .csv 檔案範例:

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

範例的運作方式如下:

  • 指標欄位為 populationcountryyear 欄位是維度欄位。
  • 維度欄位的每個值皆不可空白。包含時間維度。指標欄位的值可以留空。空白值以無字元表示。
  • 參照概念的每個資料欄標題 (例如上例中的第一個欄位參照了概念 country) 都必須與概念定義中概念的專屬 ID 完全相符。
  • 維度值的不重複組合 (例如 AF, 2000) 只能出現一次。
  • 同一個時間序列中的資料列 (也就是除了時間以外的所有維度值組合中) 的資料列必須分到同一組,但不需要另行排序。

進階功能

多語言資料集

翻譯的 XML 值

您可以將 xml:lang 屬性與 DSPL 檔案中的每個 <value> 元素搭配使用。這項屬性使用標準 W3C 語言標記來指定元素內容的語言。請注意,這項功能為選用,如果不包含 xml:lang 屬性,系統會假設內容為英文。

以下範例為使用英文、保加利亞文、加泰隆尼亞文及簡體中文的資料集的基本的圖片:

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

翻譯後的屬性

在某些情況下,您可能會想要提供超出概念層級中繼資料的翻譯,並套用至個別概念例項 (或改為套用) 。如果概念屬性值 (例如名稱) 因語言而異,這項做法就特別實用。

如要提供多種語言的這個值,請在每個屬性/語言組合的對應定義表格中建立一個資料欄。接著,在概念的資料表參照標記中加入一組 <mapProperty xml:lang="..." ref="..." toColumn="..."> 元素,將這些資料欄與相關的屬性和語言建立連結。

以下範例說明如何使用英文、西班牙文和法文定義國家/地區概念:

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

countries_table 的 CSV 檔案將採用以下格式:

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

可繪項目概念

許多概念 (例如:縣市、州/省和城市) 都有符合地理位置的實例。DSPL 支援對這些執行個體進行地理編碼,以便在 Google 公開資料動畫地圖圖表中以視覺化的方式呈現。

如果您的概念相當於世界國家/地區、美國州/省或美國郡/縣,就可以直接連結至對應的 Google 標準概念,而不需要明確地理編碼。詳情請參閱標準概念指南

否則,您需要將概念設為可對應。第一步是使其從 geo:location 擴充:

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

然後,您必須以明確方式加上經緯度,做為屬性:

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

接著,這些值會在對應的概念定義資料表中指定為資料欄。

概念關係

概念通常以結構化的方式與其他概念相關。例如,洲別執行個體可能包含多個國家/地區執行個體,而這些執行個體可能包含多個州/省的執行個體。在資料集中繼資料中,為這些關係進行編碼可帶來更豐富的視覺化功能,例如顯示可收合的位置,供您選擇。

下列各節將說明 DSPL 結構定義支援的概念關係。

階層

在子概念的 <property> 標記中使用 isParent="true" 屬性 (包含父項概念執行個體的執行個體的 ID),以 DSPL 表示概念階層。

例如,Google 的美國郡概念就是採用以下形式:

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

支援資料表的 state 資料欄含有各個縣市的雙字母州碼。這類中繼資料可讓 Public Data Explorer 以階層方式顯示狀態和縣市資訊,讓使用者更容易探索。

請注意,一個概念可以有多個子項,但只能有一個父項

對應

透過對應概念的 property 標記中的 isMapping="true" 屬性,表示概念對應 (也就是代表相同事物的概念)。

指定某個概念可以對應至另一個概念,前者可以繼承後者的所有屬性和屬性。在其他應用程式中,這對於連結個人地理概念與 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>
  

擴充功能

概念擴充功能是透過對應概念定義中的 extends 元素來指定。擴充功能可用來指出特定概念是另一個較廣泛概念的子類別。擴充概念會繼承父項的所有屬性和屬性,您也可以新增其他屬性。

舉例來說,Google 的 currency 概念會擴充 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>
  

如需更多說明與範例,請參閱教學課程中的概念擴充功能討論。

提交資料集

如要將資料集提交至 Google 公開資料瀏覽器,請按照下列操作說明進行:

  1. 建立目錄。
  2. 將資料集 dspl 檔案儲存在您建立的目錄中。請務必使用 .xml 副檔名。
  3. 將所有本機 .csv 檔案儲存在同一個目錄中。透過網址參照的資料檔案可以省略。
  4. 壓縮目錄。
  5. 上傳您的資料集到 Google 公開資料瀏覽器。

資料集上傳並完成驗證後,只要登入 Google 帳戶即可進行測試。您必須確認並準備好發布此資訊卡,應用程式才會發布。