DSPL 常见问题解答

本文档介绍了数据所有者在创建 DSPL 数据集并将其上传到公开数据浏览器时遇到的常见问题。

内容

一般问题

什么是 DSPL?

DSPL 代表数据集发布语言。它是数据集的元数据(有关数据集的信息,如名称和提供程序及其包含和显示的概念)和实际数据的表示法格式。元数据以 XML 指定,而数据以 CSV 格式提供。

使用 DSPL 的主要优势有哪些?

DSPL 从设计之初就考虑了与公开数据浏览器中丰富的数据可视化图表。创建这些数据集需要有关切片、维度和指标以及其他数据集格式未得到充分支持的实体的详细元数据。

DSPL 还支持数据集导入、概念层次结构(例如,“country”是“洲”的子元素)、地理编码数据以及其他一些可增强数据探索体验的独特功能。

DSPL 可以取代用于数据交换和/或分析的其他格式吗?

通常不会。正如上一个回答中所述,DSPL 专为交互式可视化和探索而设计。它并不作为通用的全数据交换或分析格式。

最终,我们认为 DSPL 是对其他格式的补充。用户应该能够从其他来源创建 DSPL 数据集,以便创建丰富的交互式数据可视化图表。

DSPL 数据集有哪些用途?

您可以将其导入公开数据浏览器、发布数据,并允许他人通过丰富的交互式可视化图表探索数据。已发布的数据集也可以包含在公共数据目录中,供感兴趣的用户找到。

目前,这是使用 DSPL 的唯一应用。不过,我们鼓励人们将该应用用于其他应用,并且我们预计应用采用率会随着时间的推移而提高。

哪些类型的数据集最适合 DSPL?

DSPL 格式支持任意表集,因此适合各种数据集类型。但是,在公共数据资源管理器中,只有一部分 DSPL 数据集会生成有趣的可视化效果。具体而言,第二种产品最适合以下数据:

  • 定量:每个数据点都有一个或多个关联的数字指标(例如,“人口”、“流感病例数”、“收入”)。
  • 分类:数据可以分为有限数量的文本可分类类别(例如,“countries”、“ genders”、“age groups”)。
  • 时序:对于每个类别,数据指标会随时间变化,并且相邻点之间至少相隔一天(公共数据浏览器无法直观呈现小于一天的时间增量)。
  • 汇总:每个时间 / 类别 / 指标的组合都有一个数据点,而不是事件或事实列表。

我已创建了 DSPL 数据集,并希望该数据集显示在 Google 公共数据目录中,以便其他人可以找到它。我应该联系谁?

请填写此表单,并提供您的数据集链接。

我在使用 DSPL 时遇到问题。我可以在哪里寻求帮助?

请将您的问题发布到 DSPL 论坛

DSPL 数据集文件

我该如何对 XML 和 CSV 文件进行编码?

所有 XML 和 CSV 文件都需要使用 UTF-8 编码。请注意,ASCII(有时称为“纯文本”)是 UTF-8 的子集,因此采用该格式的数据集也应有效。

我应该使用什么软件来创建和修改数据集文件?

如需修改 XML 文件,最好使用纯文本编辑器(语法上应突出语法);如需查看针对具体平台提供的建议,请参阅这篇文章。我们不建议使用功能齐全的通用文字处理器,因为它们往往会在 XML 中插入其他格式设置标记,而这可能会导致导入错误。

电子表格通常是最简便的创建和修改数据文件的方法。只需确保以正确的格式(CSV/逗号分隔值)保存即可。

我拥有 Excel、SPSS、SAS 或其他系统中的数据。我可以将这些报告直接导入公开数据浏览器吗?

否,目前还不行。您需要先将数据导出为 CSV 格式,添加相应的 XML 元数据,然后将符合 DSPL 的数据集上传到 Public Data Explorer。

能否为文件命名?

您的数据集 XML 文件的名称应以 .xml 结尾。关联的 CSV 数据文件可以具有任何名称,只要它们与 XML 元数据中的 <file> 标记中指定的名称匹配即可。 用于打包数据集并将其导入 Public Data Explorer 的 ZIP 文件也可以具有任何名称。

是否应对 CSV 文件进行排序?

可以。您应该按非时间维度(按任意顺序或方向)对 CSV 文件的内容进行排序,然后还可以视需要按任何其他列(例如时间)对 CSV 文件的内容进行排序。

例如,如果您的 CSV 列包含 datedimension1dimension2metric1metric2 列,则应按 dimension1dimension2(按任意顺序)排序。如果您还想按日期/时间列排序,那么这应该就是最后排序依据。

通过这种方式排序,可将每个时序的观察结果归为一组,这极大地提高了 DSPL 导入过程的效率。

XML 模型和语法

如何确定指标和维度?

维度是用于细分或过滤数据的实体。另一方面,指标描述与每个数据点观测到的一个或多个值。

通常,维度是分类值,而指标是非分类且随时间变化的数值。下面列出了每种机制的一些典型示例:

  • 维度:国家/地区、州、县、区域、年份、月份、性别、年龄类别、行业细分
  • 指标:人口、GDP、失业率、扫盲率、收入、费用、价格

属性与属性有何区别?

属性会附加到概念的每个实例。例如,对于不同的国家/地区,大洲资源具有不同的值。 另一方面,属性与整体的概念相关联。例如:对于所有大洲,isParent 属性为 true。

代码的顺序重要吗?

可以。请按照开发者指南中显示的代码添加顺序。例如,在概念的定义中,<topic> 应出现在 <type> 前面。

大小写是否重要?

需要,XML 标记和属性名称的大小写必须与开发者指南中显示的相同。例如,在 property 标记中使用 isparent 而非 isParent 将导致导入错误。

一个概念可以有两个父母?

不可以。每个概念只能有一个 isParent 引用。

概念是否可以指代自身?

可以。如需查看自引用概念层次结构的示例,请参阅美国零售销售数据集

数据格式

如何设置日期格式?

日期可采用 Jada 日期时间标准可写的任何格式。Joda 格式代码应存储在相应表列元素的 format 属性中。

下面列出了一些常见日期格式的 Joda 格式代码:

日期示例 Joda 格式
2010 yyyy
2010 年 5 月 MMM yyyy
2010 年 5 月 21 日 MM/dd/yyyy
2010 年 5 月 21 日 dd/MM/yyyy
2010-05-21 yyyy-MM-dd

尤其要注意,月份字符的 Joda 代码是 M,而不是 m(表示分钟)。

我可以使用小于一天的时间单位吗?

Joda 日期时间格式以及 DSPL 也支持时间值,最高可精确到毫秒级。但是,公开数据浏览器还无法直观呈现任何小于一天的时间粒度。

使用规范概念

什么是“规范概念”?它们有哪些作用?

术语“规范概念”是指由 Google 创建的一组概念,在其他数据集中用作基本“基础组件”。这些概念本身是在六个 DSPL 数据集中定义的,这些数据集将前者划分为“时间”、“地理位置”等类别。要访问这些概念,只需在 DSPL XML 文件开头导入相应的父数据集即可。

规范概念非常实用,因为它们有助于节省时间(例如,不必为世界上每个国家/地区手动输入纬度和经度值),还可以指示如何直观呈现您的数据。例如,公共数据浏览器使用 time:... 概念为 x 轴折线图设置格式,使用 entity:entity 概念的 name 属性为维度选择器界面生成字符串,使用 geo:locationlatitudelongitude 属性在地图可视化图表中显示数据,等等。

Public Data Explorer 是否理解所有规范概念?

虽然公共数据资源管理器可以理解大多数提供的规范概念,但有一些尚不直观的概念。 下面列出了这些方案以及一些建议的解决方法:

概念 临时解决方法
quantity:index 请改用 quantity:ratioquantity:magnitude
time:quarter 按照 DSPL 实战宝典中所述使用 time:month
time:week 按照 DSPL 实战宝典中所述使用 time:day

我们将继续为这些概念提供更好的支持,敬请期待。

如何在数据集中使用规范概念?

请参阅文档了解您要使用的特定概念,并参阅 DSPL 实战宝典,其中提供了最常见相关步骤的分步指导。

导入和可视化数据集

为什么我无法成功导入数据集?

Public Data Explorer 的上传界面将扫描您的 DSPL 数据集,如果检测到错误,就会阻止其导入。导入程序对 XML 文件中的拼写、大小写和标记顺序 / 位置以及 CSV 文件中的数据布局和排序都非常敏感,因此您可能需要进行几次检查才能正确导入数据集,并成功导入数据集。

解决这些问题的第一步是查看界面中提供的错误消息,并采取相应措施。 由于这些消息并不总是最容易理解(我们正努力改进的内容),因此我们编译了一个表格来解释最常见的消息:

错误 说明
重复的键:... 您的概念的定义表包含重复的 ID 值(即列中与概念同名的值)。这些值用于唯一标识相应概念的各个实例,因此不允许重复。
解析来自数据源的数据行时因属性组合 [...] 导致的异常出现在数据中的多个不同行组中。 您的 CSV 文件未正确排序。有关如何执行此操作的说明,请参阅上面的讨论
格式无效:“...”会在“...”格式错误时解析源数据行中的异常 CSV 文件中此值的格式(通常为日期)与 XML 文件中指定的格式不一致。请更改格式或值,使其保持一致。
由源行 (...) 中的元素数导致的源数据行解析不匹配,原因是:[...] 指定属性 (...) 的数量 CSV 文件中的某一行包含的值过多或过少。请修正此行的格式。
解析来自源的数据行时出现异常,对于输入字符串:“...” CSV 中的值(通常是整数或浮点数)包含非数字字符(例如美元符号、百分号等),因此无法正确解析。请移除多余的字符。
切片“...”的属性“...”的数据值“...”导致来自数据源的数据行解析失败,这不属于引用概念“...”的键值对。 您的其中一个切片包含无法识别的维度值(即但这并不属于对应概念的所有可能值的列表)。如有必要,请返回维度概念定义表并添加该值。
数据中的标题“...”是表中的常量属性 CSV 中的列标题与 XML 表定义中定义的列 ID 不匹配。请更改其中一个字段,使其保持一致。
XML 解析错误 ... 找到无效的内容。从元素“...”开始。预期会出现“{...}”、“{...}”中的一个。 引用的 XML 元素不在正确的位置。检查以确保顺序正确,并确保元素具有正确的父级元素(例如,info - name)。
XML 解析错误... 属性“...”不允许出现在元素“...”中。 此 XML 标记属性的拼写、大小写或位置不正确。如需了解相应用法,请参阅文档。
XML 解析错误。...元素“...”不能包含字符 [children],因为该类型的内容类型仅包含元素。 您的 XML 文件中包含一些虚假文本(可能是因代码缺少 <> 所致)。请修正文本,然后重试。

如果您无法理解上述列表中没有的消息,请在 DSPL 论坛中发帖,我们会尽力为您提供帮助。

我的数据集已成功导入,但公开可视化图表中未显示任何可视化图表。 这是怎么回事?

如果您的数据集是有效的 DSPL,但不属于公共数据资源管理器中可见的 DSPL 子集,就会出现此问题。导致这种情况的原因可能很多,最常见的原因如下:

  • 定义不含表格的维度概念:如果没有这些信息,Public Data Explorer 就不知道要在界面中显示哪些选项。
  • 创建仅包含指标的数据集:公开数据浏览器要求在数据集内的某处定义至少一个分类(即非时间)维度,才能正确构建可视化界面。
  • 在切片中不包含时间维度:Public Data Explorer 只能直观呈现时间序列。产品将忽略非时间片。
  • 使用除规范 time:... 维度以外的时间维度:Public Data Explorer 使用规范的 time 概念布置产品中的多种可视化效果并呈现相关动画效果;它不理解其他时间概念(例如在您自己的数据集内创建的时间概念)。
  • 使用过大或过小的时间值:Public Data Explorer 尚无法直观呈现时间粒度小于一天的数据集。另一方面,该工具难以处理非常大的年份值(例如,数万)。我们希望将来能够让这些粒度更加灵活。

如何将可视化数据集集成到我的网站中?

请参阅 Public Data Explorer 帮助中心的这篇文章。如后者所述,您可以通过手动调整嵌入网址来获取“完整嵌入”(即包含探索控件的嵌入)。