Этот документ содержит кулинарную книгу полезных 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
в метриках, которые его используют. - Полный пример см. в определении концепции канонической валюты .