本文档包含实用 DSPL 和规范概念的实战宝典 “recipes”。这些指南提供了针对各种 超越了本文所述的基本语言功能的 教程和开发者指南。内容 下文假定您对之前的文档有所了解,因此请务必通读 然后再开始“烹饪”
每个食谱都以一个目标开头,后跟一系列具体的步骤 跟随。许多还包括 DSPL 代码段或指向外部示例的链接。如果您 对食谱有任何意见或想推荐其他人,请发布 在 DSPL 论坛中发帖咨询。
基本食谱
指定显示名称
目标
关联“显示名称”每个维度(维度) 概念。这些名称将显示在公开数据资源管理器界面中,而不是 概念实例 ID,这些 ID 通常较短,也较难用户 理解。
步骤
- 让您的概念扩展
entity:entity.
- 向关联的概念定义添加
name
列 表格。 - 使用每个实例的名称填充后面的属性。
备注
- 无需明确定义
name
属性, 你的概念元数据;该定义会自动包含在内 扩展entity:entity
。 - 您还可以添加
description
和info_url
列分别提供实例级说明和网址。
创建概念层次结构
目标
创建(维度)概念的层次结构。这些标签会显示在 公共数据资源管理器界面以树形形式显示,可让用户了解分组 并在这些元素之间导航
步骤
- 定义“父级”概念(例如,
region
)。 - 定义“子元素”概念(例如,
subregion
)。 - 在子文件中添加一个引用父实体并包含
isParent
属性:<property concept="..." isParent="true"/>
,其中英文句点替换为父级 ID。 - 在子节点的定义表中,添加引用 。
- 对于每个子实例,使用 父级概念
备注
- 如需了解
country
/state
关系,请参阅 教程数据集, 一个例子。 - 从子级引用的每个父级 ID 都必须位于父级的 定义表中。否则,导入程序将产生错误。
- 父项和子项可以采用相同的概念(即自引用
层次结构)。如需了解
business
概念,请参阅 美国零售销售数据集 看看这个例子
对概念实例进行分类
目标
为将显示为选项的概念实例创建类别 颜色选择器中。
步骤
- 定义“类别”概念(例如,
income_level
)。 - 定义“子元素”概念(例如,
country
)。 - 在子元素中添加一个引用类别概念的属性,
包含一个
name
元素:<property concept="..."/> <info> <name><value>"..."</value></name> </info> </property>
,其中第一组圆点替换为类别概念 ID, 将第二组替换为所需的媒体资源显示名称 (例如,“收入水平”)。 - 在子节点的定义表中,添加引用 类别概念。
- 对于每个子实例,使用 类别概念
备注
- 一个概念可以有多个属性作为类别;在此 在这种情况下,用户会在颜色选择器中看到所有这些作为选项。
- 出于以下目的,这些类别之一也可以作为父级 在界面中以分层方式组织实例。查看前 。
指定概念实例的排序顺序
目标
指定概念实例的排列顺序。此顺序用于 在 Public Data Explorer 左侧导航栏中列出实例 可视化页面。
步骤
- 让您的概念扩展
entity:entity
或其某个 子节点(例如geo:location
)。 - 向概念元数据添加
entity_order
属性。 - 将前一个的值设置为
ALPHA
或TABLE
;前者会使实例列在 而后者会保留实例 它们在概念定义表格中的显示顺序相同。
备注
ALPHA
是当前默认值。如果您想使用此 则上述步骤是可选的。- 请参阅
entity:entity
文档。
时间食谱
季度数据
目标
直观呈现按季度间隔指定的数据。
步骤
- 将切片数据中的所有季度转换为月份(例如, 每个季度的第一个月)。
- 在切片中将此维度视为
time:month
XML。
每周数据
目标
按每周间隔直观呈现指定的数据。
步骤
- 将切片数据中的所有周转换为天(例如,第一个 星期几)。
- 在 Slice XML 中将此维度视为
time:day
。
地理食谱
使用 country
或 state
规范概念
目标
使用规范的 country
或 state
概念,
然后导入所有纬度/经度值等,这样就无需
数据集内定义的任何数据集。
步骤
- 请确保 切片数据 CSV 是来自规范 country 和 状态 定义表。
- 将
geo:country
和/或geo_us:state
添加为 相应切片中的不同维度。 - 请确保这些列的名称与名称一致
之前的概念(不包括导入的数据集名称,例如
country
),否则请添加mapDimension
语句。示例:<slice id="..."> ... <dimension concept="geo:country"/> ... <mapDimension concept="geo:country" toColumn="my_country"/> </slice>
仅使用规范国家/地区的子集,或 州
目标
使用规范地理位置概念的子集,以便只有该子集(而不是 整个列表,例如全球所有国家/地区)都会显示在“公共”版块中 数据浏览器界面。
步骤
- 定义一个扩展超集概念的局部概念。示例:
<concept id="my_country_subset" extends="geo:country"> ... </concept>
- 在关联的概念定义 CSV 文件中,请仅添加
超集概念。示例:
my_country_subset FR MX US
备注
- 子集概念的每个实例都必须是 超集概念;您不能“展开”概念以及 实例。
定义您自己的地理概念
目标
创建您自己的可探索和绘制的地理概念, 例如 Google 定义的规范网址
步骤
- 创建一个扩展
geo:location
的概念。 - 在关联的概念定义表中,添加列
name
、latitude
和longitude
。 - 为概念的每个实例填充后面的属性;该 纬度值和经度值是浮点值,并遵循 N 和 E 的惯例 为正,W 和 S 为负。
备注
- 无需明确包含
name
, 您的latitude
和longitude
房源 概念定义,因为在扩展geo:location
。 - 请参阅教程数据集中
state
的定义,了解 示例。
指标和单位配方
使用百分数
目标
定义一个(指标)概念,即占其他内容的百分比。
步骤
- 让您的概念扩展
quantity:ratio
。 - 将
is_percentage
属性设置为true
。<attribute id="is_percentage"> <value>true</value> </attribute>
- (可选)根据以下内容设置
percentage_of
属性: 这个概念所占的比例示例:<attribute id="percentage_of"> <value>labor force</value> </attribute>
使用了 currency
个单位
目标
定义一个包含货币单位(例如美元)。
步骤
- 将您的指标扩展
quantity:quantity
或它的某个 儿童,例如quantity:amount
。 - 添加一个引用
unit
unit:currency
并将其值设置为 相关的货币定义 表格。示例:<concept id="..."> <attribute concept="unit:currency"> <value>EUR</value> </attribute> </concept>
创建自定义单位
目标
为一个或多个指标创建自定义单位。
步骤
- 创建一个扩展
unit:unit
的概念。 - 将
unit_text
和symbol
列添加到 关联的定义表中。(可选)如果您想调整 符号位置,还可以添加一个symbol_position
列。 - 填写
单位。“area”的 CSV 文件示例单位:
my_unit,unit_text,symbol,symbol_position SQKM,square kilometers,km²,END SQML,square miles,miles²,END
- 要在(指标)概念中使用新创建的单位,请确保
后者会扩展
quantity:quantity
或其一个子级。然后, 添加一个引用您的单元概念的属性。示例:<concept id="..." extends="quantity:amount"> ... <attribute concept="my_unit"> <value>SQKM</value> </attribute> ... </concept>
备注
- 如果单元概念只有一个实例,则可以省略 ID
列以及
value
标记中的 使用它的指标 - 请参阅规范货币的定义 概念,获取完整示例。