DSPL 指南

本文档包含实用 DSPL 和规范概念的实战宝典 “recipes”。这些指南提供了针对各种 超越了本文所述的基本语言功能的 教程开发者指南。内容 下文假定您对之前的文档有所了解,因此请务必通读 然后再开始“烹饪”

每个食谱都以一个目标开头,后跟一系列具体的步骤 跟随。许多还包括 DSPL 代码段或指向外部示例的链接。如果您 对食谱有任何意见或想推荐其他人,请发布 在 DSPL 论坛中发帖咨询。

基本食谱

指定显示名称

目标

关联“显示名称”每个维度(维度) 概念。这些名称将显示在公开数据资源管理器界面中,而不是 概念实例 ID,这些 ID 通常较短,也较难用户 理解。

步骤

  1. 让您的概念扩展 entity:entity.
  2. 向关联的概念定义添加 name 列 表格。
  3. 使用每个实例的名称填充后面的属性。

备注

  • 无需明确定义 name 属性, 你的概念元数据;该定义会自动包含在内 扩展 entity:entity
  • 您还可以添加descriptioninfo_url 列分别提供实例级说明和网址。

创建概念层次结构

目标

创建(维度)概念的层次结构。这些标签会显示在 公共数据资源管理器界面以树形形式显示,可让用户了解分组 并在这些元素之间导航

步骤

  1. 定义“父级”概念(例如,region)。
  2. 定义“子元素”概念(例如,subregion)。
  3. 在子文件中添加一个引用父实体并包含 isParent 属性:
    <property concept="..." isParent="true"/>
    
    ,其中英文句点替换为父级 ID。
  4. 在子节点的定义表中,添加引用 。
  5. 对于每个子实例,使用 父级概念

备注

  • 如需了解 country / state 关系,请参阅 教程数据集, 一个例子。
  • 从子级引用的每个父级 ID 都必须位于父级的 定义表中。否则,导入程序将产生错误。
  • 父项和子项可以采用相同的概念(即自引用 层次结构)。如需了解 business 概念,请参阅 美国零售销售数据集 看看这个例子

对概念实例进行分类

目标

为将显示为选项的概念实例创建类别 颜色选择器中。

步骤

  1. 定义“类别”概念(例如,income_level)。
  2. 定义“子元素”概念(例如,country)。
  3. 在子元素中添加一个引用类别概念的属性, 包含一个 name 元素:
    <property concept="..."/>
      <info>
        <name><value>"..."</value></name>
      </info>
    </property>
    
    ,其中第一组圆点替换为类别概念 ID, 将第二组替换为所需的媒体资源显示名称 (例如,“收入水平”)。
  4. 在子节点的定义表中,添加引用 类别概念。
  5. 对于每个子实例,使用 类别概念

备注

  • 一个概念可以有多个属性作为类别;在此 在这种情况下,用户会在颜色选择器中看到所有这些作为选项。
  • 出于以下目的,这些类别之一也可以作为父级 在界面中以分层方式组织实例。查看前 。

指定概念实例的排序顺序

目标

指定概念实例的排列顺序。此顺序用于 在 Public Data Explorer 左侧导航栏中列出实例 可视化页面。

步骤

  1. 让您的概念扩展 entity:entity 或其某个 子节点(例如geo:location)。
  2. 向概念元数据添加 entity_order 属性。
  3. 将前一个的值设置为 ALPHATABLE;前者会使实例列在 而后者会保留实例 它们在概念定义表格中的显示顺序相同。

备注

  • ALPHA 是当前默认值。如果您想使用此 则上述步骤是可选的。
  • 请参阅 entity:entity 文档

时间食谱

季度数据

目标

直观呈现按季度间隔指定的数据。

步骤

  1. 将切片数据中的所有季度转换为月份(例如, 每个季度的第一个月)。
  2. 在切片中将此维度视为 time:month XML。

每周数据

目标

按每周间隔直观呈现指定的数据。

步骤

  1. 将切片数据中的所有周转换为天(例如,第一个 星期几)。
  2. 在 Slice XML 中将此维度视为 time:day

地理食谱

使用 countrystate 规范概念

目标

使用规范的 countrystate 概念, 然后导入所有纬度/经度值等,这样就无需 数据集内定义的任何数据集。

步骤

  1. 请确保 切片数据 CSV 是来自规范 country状态 定义表。
  2. geo:country 和/或 geo_us:state 添加为 相应切片中的不同维度。
  3. 请确保这些列的名称与名称一致 之前的概念(不包括导入的数据集名称,例如 country),否则请添加 mapDimension 语句。示例:
    <slice id="...">
      ...
      <dimension concept="geo:country"/>
      ...
      <mapDimension concept="geo:country" toColumn="my_country"/>
    </slice>
    

仅使用规范国家/地区的子集,或 州

目标

使用规范地理位置概念的子集,以便只有该子集(而不是 整个列表,例如全球所有国家/地区)都会显示在“公共”版块中 数据浏览器界面。

步骤

  1. 定义一个扩展超集概念的局部概念。示例:
    <concept id="my_country_subset" extends="geo:country">
    ...
    </concept>
    
  2. 在关联的概念定义 CSV 文件中,请仅添加 超集概念。示例:
    my_country_subset
    FR  
    MX
    US
    

备注

  • 子集概念的每个实例都必须是 超集概念;您不能“展开”概念以及 实例。

定义您自己的地理概念

目标

创建您自己的可探索和绘制的地理概念, 例如 Google 定义的规范网址

步骤

  1. 创建一个扩展 geo:location 的概念。
  2. 在关联的概念定义表中,添加列 namelatitudelongitude
  3. 为概念的每个实例填充后面的属性;该 纬度值和经度值是浮点值,并遵循 N 和 E 的惯例 为正,W 和 S 为负。

备注

  • 无需明确包含 name, 您的latitudelongitude房源 概念定义,因为在扩展 geo:location
  • 请参阅教程数据集state 的定义,了解 示例。

指标和单位配方

使用百分数

目标

定义一个(指标)概念,即占其他内容的百分比。

步骤

  1. 让您的概念扩展 quantity:ratio
  2. is_percentage 属性设置为 true
    <attribute id="is_percentage">
      <value>true</value>
    </attribute>
    
  3. (可选)根据以下内容设置 percentage_of 属性: 这个概念所占的比例示例:
    <attribute id="percentage_of">
      <value>labor force</value>
    </attribute>
    

使用了 currency 个单位

目标

定义一个包含货币单位(例如美元)。

步骤

  1. 将您的指标扩展 quantity:quantity 或它的某个 儿童,例如quantity:amount
  2. 添加一个引用unit unit:currency 并将其值设置为 相关的货币定义 表格。示例:
    <concept id="...">
      <attribute concept="unit:currency">
        <value>EUR</value>
      </attribute>
    </concept>
    

创建自定义单位

目标

为一个或多个指标创建自定义单位。

步骤

  1. 创建一个扩展 unit:unit 的概念。
  2. unit_textsymbol 列添加到 关联的定义表中。(可选)如果您想调整 符号位置,还可以添加一个 symbol_position 列。
  3. 填写 单位。“area”的 CSV 文件示例单位:
    my_unit,unit_text,symbol,symbol_position
    SQKM,square kilometers,km²,END
    SQML,square miles,miles²,END
    
  4. 要在(指标)概念中使用新创建的单位,请确保 后者会扩展 quantity:quantity 或其一个子级。然后, 添加一个引用您的单元概念的属性。示例:
    <concept id="..." extends="quantity:amount">
      ...
      <attribute concept="my_unit">
        <value>SQKM</value>
      </attribute>
      ...
    </concept>
    

备注

  • 如果单元概念只有一个实例,则可以省略 ID 列以及 value 标记中的 使用它的指标
  • 请参阅规范货币的定义 概念,获取完整示例。