DSPL 开发者指南

DSPL 是“Dataset Publishing Language”(数据集发布语言)的缩写。它是一种表示格式, 元数据(有关数据集的信息,例如其 名称和提供程序,及其包含和显示的概念)和 数据集的实际数据。此格式描述的数据集可以是 导入 Google 公开数据 Explorer - 一种用于详细、直观地探索数据 数据。

注意:将数据上传到 Google 公开数据 要使用公开数据上传工具,您必须拥有 Google 账号

本文档适用于希望自己的内容 。除了教程之外,本课程更深入地介绍了 DSPL 架构和受支持功能的详细信息。只是基本熟悉 但同样了解关系型数据库的相关知识, 实用。

虽然这不是一项强制性要求,但我们建议您通读教程,因为它更加简短, 更便于理解。

概览

DSPL 数据集是包含 XML 文件和一组 CSV 的 .zip 文件 文件。CSV 文件是包含数据集数据的简单表格, 而 XML 文件描述数据集的元数据。后者包括 信息性元数据,例如测量值描述 结构元数据,例如表之间的引用。此元数据 让非专家用户能够探索和直观呈现您的数据。

流程

一般来说,创建 DSPL 数据集的过程如下( 步骤可能会同时进行):

  1. 创建您的 DSPL XML 文件。
  2. 确定要在数据集内使用的任何外部数据源。
  3. 定义您的概念、切片和主题(可选)。迭代式 更新 DSPL 文件的内容。
  4. 将源数据导出为 .csv 文件。
  5. 创建 DSPL 数据集。
  6. 将数据集提交给 Google。

XML 结构

概览

DSPL XML 文件用于定义数据集的元数据,包括 概念、切片、主题和表之间的结构关系。 虽然可以手动创建此文件,但数据处理工具 可以极大地简化流程查看新的 窗口

该文件包含多个部分,在表格中汇总了这些部分 。在下表之后,我们将更详细地介绍 。

部分 摘要 更多信息
标头和导入 数据集所有其他元素的父级。包含 数据集的目标命名空间(即标识符)以及 所有已导入数据集的命名空间。 文档
数据集信息 数据集的名称、说明和网址。 文档
提供商信息 数据集提供商的名称、说明和网址。 文档
概念

“事物”的定义出现的问题(例如, 国家/地区、失业率、性别等)

每个概念都有一个唯一标识符,可以由 切片和表

文档
切片

在 数据集。每个切片都包含维度和 metrics

Slice 会参考相关概念和表,其中包含实际的 数据。每个 Slice 都有一个唯一标识符,供 包含实际数据的表格。

文档
为概念和切片定义数据。概念表 枚举和切片表存储统计数据。表的定义 ,并指向包含实际数据的 .csv 文件。 文档
主题 用于组织数据集概念的类别。虽然并非必须 这对于用户浏览数据非常有用 文档

标头和导入

声明公共数据命名空间

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 是 外部数据集。

以下示例中引用了 year 概念, time 数据集(如上所述):

<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 可以是 用于引用切片和表中的概念。

<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 为 countryname 属性, continentcapital
  • 此概念扩展了 geo:location 位置。通过扩展 geo:locationcountry 继承了扩展概念所定义的所有属性: 属性名称、说明、网址、纬度和经度。还行 让 country 重新定义其中一些属性 属性,只要定义与所提供的参数一致即可 扩展概念的影响。
  • <info> 概念元素用于描述密钥 有关概念的信息这会显示在数据集的 打开公共数据资源管理器的着陆页。
  • <type> 概念元素是指 内容。本例中为字符串,但具体数值可能会有所不同。概念 填充的类型为 integer;概念 Eurovision winner 的类型为布尔值。
  • <property> 元素用于描述 概念,包括其唯一 ID (id)、infotype。属性还可以引用概念, 表明其值是这些概念的有效实例。
  • 此概念引用了一个数据,该表指向 添加到包含实际数据的 CSV 文件中。已引用数据表 如下所示:<table ref="countries_table"/>

    如果您的概念引用了表,则关联的数据文件必须列出 概念的所有实例。例如,您不能创建表 其中仅列出了数据集中包含的几个国家/地区。(如果有 是您关心的国家/地区的一部分, 来描述它们例如 mycountries。)

元素

元素 是否必需? 说明
<concepts> 顶级元素。包含全部<concept> 元素。
<concept> 标识概念。必需属性 id 对于数据集内的概念必须是唯一的。如果 概念涉及一个概念数据表, “id”必须与用于描述概念的列标题一致 数据表。extends 属性可用于指明 这个概念延伸了另一个概念。 extends 必须与 数据集或采用 prefix:concept_id 格式,其中 concept_id 是在导入的 与 prefix 关联的外部数据集。
<info> 可选 包含有关概念的描述性信息。
<name> <info> 的子级。概念的名称。通过 子元素“<value>”包含文本“- for” 示例:Country
<description> 可选 <info> 的子级。包含子元素 <value>,其中包含 概念。
<url> 可选 <info> 的子级。包含子元素 <value>,其中包含 概念。
<pluralName> 可选 <info> 的子级。该 概念。子元素 <value> 包含文本 - 例如 Countries
<totalName> 可选 <info> 的子级。组合的名称 概念的所有实例。子元素 <value> 如果为 country,则包含 text- 概念,例如,可能是 World
<type> 可选 标识概念所描述的内容的类型。必需的 属性 ref 允许的值如下: <ph type="x-smartling-placeholder">
    </ph>
  • 字符串
  • float
  • integer
  • date
  • 布尔值
如果相应概念扩展了另一个概念,则可以省略该类型, 在这种情况下,它会继承自扩展概念。
<property> 可选

概念的属性,例如 capital。值 的必需属性 id 必须是 概念。可选的 concept 属性可用于 表示该属性的值是给定 概念。如果指定了 concept,则 id 可以省略;其值隐式定义为 所引用的概念(例如,<property concept="geo:country"/> 相当于 <property id="country" concept="geo:country"/>)。

属性可以包含布尔值 isParent 属性, 指示概念实例之间的关系 且此属性的值是分层的

属性可以包含布尔值 isMapping 属性, 以表示 属性的概念和值。

属性可以指定嵌套的 infotype,其定义方式与概念相同。 如果属性未指定type concept属性,并且必须与 引用的概念。

<attribute> 可选

概念的属性。属性代表 概念的相关信息(例如,GDP 是一个百分比)。值 的必需属性 id 必须是 概念。可选的 concept 属性可用于 表示该属性的值是给定 概念。如果指定了 concept,则 id 可以省略。其值隐式定义为 引用的概念(例如 <attribute concept="unit:unit"/> 相当于 <attribute id="unit" concept="unit:unit"/>

属性可以指定嵌套的 infotype,其定义方式与概念一样。 如果属性未指定type concept属性,并且必须与 引用的概念。

<table> 可选 标识包含概念数据的数据表。通过 必需的 ref 属性的值必须与表匹配 在相关 <table> 元素中指定的 ID。

切片

说明

切片是存在数据对应的概念的组合。切片 包含两种概念引用:维度metrics。维度是用于细分或过滤的概念 数据。另一方面,指标描述的是观测到的值 与每个数据点关联的值。

通常,维度是分类指标,而指标是非分类指标。 随时间变化的数值。每种方法的典型示例如下: 如下:

  • 维度:国家/地区、州/省/自治区/直辖市、郡/县、区域、年份 月、性别、年龄段、行业细分
  • 指标:人口、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 文件的数据表 包含实际数据的 。数据表的引用方式如下: <table ref="country_slice_table"/>。(参见上文) 了解如何导入 数据集。)

注意:通常,您的数据集会 您可以灵活选择, 维度。例如,您不必创建 Female UnemploymentMale Unemployment: 创建单个指标“Unemployment”,并添加维度 Gender(包含实例 FemaleMale

元素

元素 是否必需? 说明
<slices> 顶级元素。包含全部<slice> 元素。
<slice> 可选 标识 Slice。必需属性 id 对于 Slice 必须是唯一的。
<dimension> 可选 通过引用概念定义 Slice 的维度。通过 必需属性 concept 的值必须与 概念的唯一 ID,如果概念 属于外部导入的数据集。
<metric> 可选 通过引用概念定义 Slice 的指标。值 的必需属性 concept 必须与 该概念的唯一 ID,如果概念属于该概念,请使用有效的前缀 导出到外部导入的数据集。
<table> 标识包含切片数据的数据表。值 的必需 ref 属性必须与表格 ID 匹配 在相关的 <table> 元素中指定。
<mapDimension> 可选 <table> 的子级。包含属性 concepttoColumn;第一个的值为 切片中的维度,第二个的值是表格列 与前者相对应
<mapMetric> 可选 <table> 的子级。包含属性 concepttoColumn;第一个的值是 切片中的一个指标,第二个的值是表格列 与前者相对应

说明

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 表。通过 表包含 country 列、year 列和 population
  • 表中的每一列都有一个唯一 ID,该 ID 由 id 属性。此 ID 必须与相应的 列标题。
  • 可选 type 属性的值定义数据 类型。
  • <data> 元素描述的是实际的 .csv 文件 (country_slice.csv),其中包含表的数据。文件格式为 始终为 csv

元素

元素 是否必需? 说明
<tables> 顶级元素。包含全部<table> 元素。
<table> 标识表。必需属性 id 对于表必须是唯一的。
<column> 可选 <table> 的子级。关于列的信息 表格中包含的链接包括以下属性: <ph type="x-smartling-placeholder">
    </ph>
  • id(必需):列的 ID。
  • type(可选):信息的数据类型 。允许的值包括:stringfloatintegerdateboolean
<data> 可选 <table> 的子级。由 表格。如果文件名采用网址的形式 (例如,http://...),则系统将通过 相应的协议(HTTP、HTTPS 或 FTP);否则,一个文件 必须与数据集捆绑在一起。 必需属性 format 的值为 始终为 csv。虽然 encoding 属性 是可选项,您的 .csv 文件必须采用 UTF-8 编码。

主题

说明

Topics 以分层方式对概念进行分类,方便用户浏览 更轻松地通过数据集进行分析。

<topics> 元素应显示在 <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
  • 媒体资源的相关各列是可选的;如果属性没有列,则会发生此错误 ,则系统会假定每行未定义其值。通过 例如,省略了“latitude”和 longitude 属性,因此这些国家/地区将无法进行映射。
  • 概念的 ID 字段的每个值(在本例中为 country)必须唯一且非空(空字段即为 1) 零或仅包含空白字符)。
  • 引用其他概念的属性的值必须是 为空或是所引用概念的有效值。
  • 将值括在双引号中是可选操作,除非是 包含英文逗号、双引号或换行符。
  • 通过将文本双引号括起来,对值中出现的双引号进行转义 再添加一个英文双引号。

Slice 数据文件

切片数据文件包含每个切片的相关数据。切片 使用 <table ref="..."> 元素 引用 <table> 定义,该定义反过来又标识 该文件。

示例

下面是一个 .csv 文件示例,其中包含 上述 population_by_country 切片:

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

下面对此示例进行了详细说明:

  • 指标字段为 population。字段 countryyear 是维度字段。
  • 维度字段的每个值都不得为空。这包括时间 维度。指标字段的值可以为空。空值是 由无字符表示。
  • 引用某个概念的每个列标题(例如,第一个 字段引用的概念 country)必须 与概念定义中概念的唯一 ID 完全匹配。
  • 维度值的唯一组合,例如AF, 2000, 只能出现一次。
  • 同一时序中的行(即具有相同组合的行) 必须归入一组,尽管它们 无需对其进行其他排序。

高级功能

多语言数据集

转换后的 XML 值

您可以将 xml:lang 属性用于每个 <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>

经过转换的媒体资源

在某些情况下,翻译的内容可能超出 概念级别的元数据,可附加(或改为)应用于单个 概念实例。如果概念的值 属性(例如 name)因语言而异。

要以多种语言提供这些值,请在 每个属性/语言组合对应的定义表。 然后,将这些列与其相关的媒体资源和语言相关联,具体方法如下: 向表中添加一组 <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>
  

然后,这些值以列的形式指定, 概念定义数据表。

概念关系

概念通常以结构化的方式与其他概念相关联。对于 一个大洲实例可能会包含多个 而国家/地区实例,反过来可能会包含多个 州或省/自治区/直辖市实例。对这些内容进行编码 数据集元数据中的各个关系,可进行更丰富的可视化 不可能实现的特征,例如显示可折叠树 有几个位置可供选择

在下面的部分中,我们将介绍 Google Cloud 中 DSPL 架构

层次结构

概念层次结构在 DSPL 中通过使用 isParent="true" 属性, 子概念的 <property> 标记,其中包含 来自父级概念的实例的标识符。

以 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 列,该列包含 各县的双字母州代码。这种类型的元数据允许 借助公共数据浏览器,您可以将州和县作为层次结构显示, 更便于用户进行探索

请注意,一个概念可以有多个子级,但不能超过一个 父实体

映射

概念映射(即从根本上表示相同的概念, )通过 isMapping="true" 表示 属性(位于映射概念的 property 标记中)。

将一个概念映射到另一个概念可以让前者继承 属性的所有属性。除了其他应用之外 这对于“关联”或个人地理概念 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 账号。只有在您选中后,它才会发布 并告诉我们一切准备就绪