Этот документ содержит кулинарную книгу полезных DSPL и канонических понятий «рецепты». В них содержатся пошаговые инструкции для различных задач, которые выходят за рамки базовых функций языка, описанных в Учебнике и Руководстве разработчика . Содержимое ниже предполагает знание предыдущих документов, поэтому обязательно прочитайте их перед тем, как начать «готовку».
Каждый рецепт начинается с цели, за которой следует определенный список шагов, которым нужно следовать. Многие также включают фрагменты DSPL или ссылки на внешние примеры. Если у вас есть какие-либо отзывы о рецепте или вы хотите предложить другие, опубликуйте сообщение на форуме DSPL .
Основные рецепты
Указание отображаемых имен
Цель
Свяжите «отображаемое имя» с каждым экземпляром концепции (параметра). Эти имена будут отображаться в пользовательском интерфейсе Public Data Explorer вместо идентификаторов экземпляров концепций, которые обычно короче и сложнее для понимания пользователями.
Шаги
- Сделайте так, чтобы ваша концепция расширяла
entity:entity.
- Добавьте столбец
name
в связанную таблицу определений понятий. - Заполните последнее свойство именем каждого экземпляра.
Ноты
- Нет необходимости явно определять свойство
name
в метаданных концепции; это определение автоматически включается при расширенииentity:entity
. - Вы также можете добавить столбцы
description
иinfo_url
, чтобы предоставить описания и URL-адреса на уровне экземпляра соответственно.
Создание иерархий концепций
Цель
Создайте иерархию понятий (измерений). Они будут отображаться в пользовательском интерфейсе Public Data Explorer в виде дерева, позволяя пользователям понимать группы и перемещаться между ними.
Шаги
- Определите «родительское» понятие (например,
region
). - Определите «дочернее» понятие (например,
subregion
). - Добавьте в дочерний элемент свойство, которое ссылается на родителя и включает атрибут
isParent
:<property concept="..." isParent="true"/>
, где точки заменены идентификатором родителя. - В таблице определений дочернего элемента добавьте столбец, который ссылается на родительский элемент.
- Для каждого дочернего экземпляра заполните последний действительным экземпляром родительского понятия.
Ноты
- См. пример отношения
country
/state
в наборе учебных данных . - Каждый родительский идентификатор, на который ссылается дочерний элемент, должен находиться в родительской таблице определений. В противном случае импортер выдаст ошибку.
- Родительский и дочерний элементы могут быть одним и тем же понятием (т. е. самореферентной иерархией). В качестве примера см.
business
-концепцию в наборе данных по розничным продажам США .
Классификация экземпляров концепции
Цель
Создайте категории для экземпляров концепции, которые будут отображаться в качестве параметров в палитре цветов Public Data Explorer.
Шаги
- Определите концепцию «категории» (например,
income_level
). - Определите «дочернее» понятие (например,
country
). - Добавьте в дочерний элемент свойство, которое ссылается на понятие категории и включает элемент
name
:<property concept="..."/> <info> <name><value>"..."</value></name> </info> </property>
, где первый набор точек заменяется идентификатором понятия категории, а второй набор заменяется желаемым отображаемым именем для вашего свойства (например, "Уровень доходов"). - В таблице определений дочернего элемента добавьте столбец, который ссылается на концепцию категории.
- Для каждого дочернего экземпляра заполните последний действительным экземпляром концепции категории.
Ноты
- Концепция может иметь несколько свойств, которые служат категориями; в этом случае пользователь увидит их все как варианты в палитре цветов.
- Одна из категорий также может быть родительской для целей иерархической организации экземпляров в пользовательском интерфейсе. Подробности смотрите в предыдущем рецепте.
Указание порядка сортировки экземпляров концепции
Цель
Укажите порядок сортировки экземпляров концепции. Этот порядок используется при перечислении экземпляров в левой части страниц визуализации Public Data Explorer.
Шаги
- Сделайте так, чтобы ваша концепция расширяла
entity:entity
или один из ее дочерних элементов (например,geo:location
). - Добавьте атрибут
entity_order
в метаданные концепции. - Установите значение предыдущего на одно из
ALPHA
илиTABLE
; первый приведет к тому, что экземпляры будут перечислены в порядке их отображаемых имен, тогда как последний сохранит экземпляры в том же порядке, в котором они появляются в таблице определений понятий.
Ноты
-
ALPHA
— это текущее значение по умолчанию, поэтому, если вы хотите использовать этот порядок, указанные выше шаги необязательны. - См . документацию
entity:entity
для примера.
Рецепты времени
Квартальные данные
Цель
Визуализируйте данные, указанные с квартальными интервалами.
Шаги
- Преобразуйте все кварталы в данных среза в месяцы (например, первый месяц квартала).
- Рассматривайте это измерение как
time:month
в XML-фрагменте.
Еженедельные данные
Цель
Визуализируйте данные, указанные с недельными интервалами.
Шаги
- Преобразуйте все недели в данных среза в дни (например, первый день недели).
- Рассматривайте это измерение как
time:day
в XML-фрагменте.
Гео Рецепты
Использование канонических понятий country
или state
Цель
Используйте канонические концепции country
или state
, импортируя все значения широты/долготы и т. д., чтобы их не нужно было определять в наборе данных.
Шаги
- Убедитесь, что все ссылки на страны и/или штаты США в CSV-файлах данных срезов являются действительными идентификаторами из канонических таблиц определения стран и штатов .
- Добавьте
geo:country
и/илиgeo_us:state
в качестве измерений в соответствующие срезы. - Убедитесь, что имена столбцов для них совпадают с именами предыдущих понятий (не включая имя импортированного набора данных, например,
country
), или, если нет, включите операторыmapDimension
в определение среза. Пример:<slice id="..."> ... <dimension concept="geo:country"/> ... <mapDimension concept="geo:country" toColumn="my_country"/> </slice>
Использование только части канонических стран или штатов
Цель
Используйте подмножество канонической географической концепции, чтобы только это подмножество (а не весь список, например, все страны мира) отображалось в пользовательском интерфейсе Public Data Explorer.
Шаги
- Определите локальную концепцию, которая расширяет концепцию надмножества. Пример:
<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
. - Заполните значения для последних свойств для каждого экземпляра вашего устройства. Пример 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>
Ноты
- Если ваша концепция единицы имеет только один экземпляр, вы можете опустить столбец идентификатора из таблицы его определения, а также теги
value
в метриках, которые его используют. - Полный пример см. в определении концепции канонической валюты .