Руководство разработчика DSPL

DSPL означает язык публикации наборов данных. Это формат представления как метаданных (информация о наборе данных, такая как его имя и поставщик, а также концепции, которые он содержит и отображает), так и фактических данных наборов данных. Наборы данных, описанные в этом формате, можно импортировать в Google Public Data Explorer — инструмент, позволяющий проводить богатое визуальное исследование данных.

Примечание. Чтобы загрузить данные в общедоступные данные Google с помощью инструмента загрузки общедоступных данных , у вас должен быть аккаунт Google .

Этот документ предназначен для владельцев данных, которые хотят, чтобы их контент был доступен в Public Data Explorer. Он выходит за рамки учебника и глубже погружается в детали схемы DSPL и поддерживаемых функций. Предполагается только базовое знание XML, хотя знание реляционных баз данных также будет полезно.

Хотя это и не является обязательным требованием, мы рекомендуем прочитать Учебное пособие , которое короче и легче для понимания, прежде чем приступить к просмотру этого документа.

Обзор

Набор данных DSPL — это ZIP-файл, содержащий файл XML и набор файлов CSV. Файлы CSV представляют собой простые таблицы, содержащие данные набора данных, а файл XML описывает метаданные набора данных. Последний включает в себя информационные метаданные, такие как описания показателей, а также структурные метаданные, такие как ссылки между таблицами. Эти метаданные позволяют неопытным пользователям исследовать и визуализировать ваши данные.

Процесс

В целом процесс создания набора данных DSPL выглядит следующим образом (некоторые шаги могут выполняться параллельно):

  1. Создайте XML-файл DSPL.
  2. Определите любые внешние источники данных, которые будут использоваться в вашем наборе данных.
  3. Определите свои концепции, фрагменты и (необязательно) темы. Итеративно обновляйте содержимое вашего файла DSPL.
  4. Экспортируйте исходные данные в файлы .csv.
  5. Создайте набор данных DSPL.
  6. Отправьте набор данных в Google.

XML-структура

Обзор

XML-файл DSPL определяет метаданные набора данных, включая структурные связи между понятиями, срезами, темами и таблицами. Хотя этот файл можно создать вручную, инструменты и сценарии обработки данных могут значительно упростить этот процесс. См. образец файла DSPL в новом окне .

Файл включает в себя несколько разделов, которые приведены в таблице ниже. Следуя таблице, мы опишем каждый из первых более подробно.

Раздел Краткое содержание Дополнительная информация
Заголовок и импорт Родитель для всех остальных элементов набора данных. Включает целевое пространство имен (т. е. идентификатор) набора данных, а также пространства имен всех импортированных наборов данных. Документация
Информация о наборе данных Имя, описание и URL-адрес набора данных. Документация
Информация о поставщике Имя, описание и URL-адрес поставщика набора данных. Документация
Концепции

Определения «вещей», которые появляются в наборе данных (например, страны, уровень безработицы, пол и т. д.)

Каждое понятие имеет уникальный идентификатор, на который могут ссылаться срезы и таблицы.

Документация
Ломтики

Комбинации понятий, по которым в наборе данных есть статистические данные. Каждый срез содержит измерения и показатели .

Срезы ссылаются на понятия, а также на таблицы, содержащие фактические данные. Каждый срез имеет уникальный идентификатор, на который могут ссылаться таблицы, содержащие фактические данные.

Документация
Таблицы Определите данные для концепций и срезов. Таблицы понятий содержат перечисления, а таблицы срезов — статистические данные. Таблицы определяются в файле XML и указывают на файлы .csv, содержащие фактические данные. Документация
Темы Категории для организации концепций наборов данных. Хотя это и не обязательно, они могут быть очень полезны для пользователей, просматривающих ваши данные. Документация

Заголовок и импорт

Объявление пространства имен общедоступных данных

Набор данных DSPL начинается с элемента <dspl> верхнего уровня. Он используется для включения всей информации набора данных и указания любых пространств имен, которые будут использоваться в файле. Вот пример:

<?xml version="1.0" encoding="UTF-8"?>
<dspl targetNamespace="http://www.example.com/mystats"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.google.com/dspl/2010" >
    ...
</dspl>

Пространство имен — это уникальный идентификатор, который можно связать со схемой XML (набором элементов и атрибутов XML). targetNamespace предоставляет URI, который идентифицирует ваш набор данных. Этот URI не обязательно должен указывать на реальный ресурс, но желательно, чтобы URI разрешался в документ, описывающий ваш контент или набор данных.

Вам не требуется предоставлять targetNamespace . Если вы этого не сделаете, он будет создан автоматически во время импорта.

За атрибутом targetNamespace следует ряд атрибутов xmlns , определяющих другие схемы XML, которые будут использоваться в файле. Каждый файл DSPL должен включать схему общедоступных данных Google с URI «http://schemas.google.com/dspl/2010» и использовать ее в качестве пространства имен по умолчанию. Он также должен включать стандартную XML-схему W3, идентифицированную как «http://www.w3.org/2001/XMLSchema-instance». Как описано в следующем разделе, можно добавить другие пространства имен для включения информации из других наборов данных.

Импорт других пространств имен набора данных

Наборы данных могут повторно использовать определения и данные из других наборов данных. Google, например, предоставляет ряд базовых наборов данных, которые определяют концепции, обычно встречающиеся в пользовательских данных. Например, большинству наборов данных требуется концепция, представляющая годы. Вместо определения новой концепции вы можете использовать концепцию года из набора данных http://www.google.com/publicdata/dataset/time. Дополнительную информацию см. на странице «Канонические концепции» .

Чтобы использовать внешний набор данных, добавьте элемент <import> в файл DSPL сразу после объявления пространства имен и укажите импортируемое пространство данных, например:

<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

Затем добавьте импортированное пространство имен (в данном случае time="http://www.google.com/publicdata/dataset/google/time" ) в объявление пространства имен в верхней части файла, например:

<?xml version="1.0" encoding="UTF-8"?>
<dspl targetNamespace="http://www.stats-bureau.com/mystats"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.google.com/dspl/2010"
    xmlns:time="http://www.google.com/publicdata/dataset/google/time" >
<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

Ваш файл DSPL теперь может ссылаться на элементы из набора временных данных Google Public Data. Повторите этот процесс для каждого набора данных, на который вы хотите ссылаться.

Ссылки на контент во внешних наборах данных

После того как вы импортировали другой набор данных, вам необходимо иметь возможность ссылаться на концепции, срезы и данные из этого набора данных. Для этого вы можете использовать ссылки формата prefix:other_id , где prefix — это префикс, используемый для пространства имен внешнего набора данных.

Вот пример ссылки на концепцию year из набора данных time (описанного выше):

<slices>
  <slice id="country_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="country_slice_table"/>
  </slice>
  ...
</slices>

Информация о наборе данных

Элемент <info> содержит описательную информацию о наборе данных. Пример и подробная информация о соответствующих элементах XML перечислены ниже.

Пример

<info>
  <name>
    <value>Unemployment Rates</value>
  </name>
  <description>
    <value>Worldwide unemployment rates by region</value>
  </description>
  <url>
    <value>http://www.example.com/mystats/info.html</value>
  </url>
</info>

Элементы

Элемент Необходимый? Описание
<info> Да Содержит всю описательную информацию о наборе данных. Включает дочерние элементы <name> , <description> и <url> .
<name> Да Дочерний элемент <info> . Включает дочерний элемент <value> , который идентифицирует имя набора данных.
<description> Необязательный Дочерний элемент <info> . Включает дочерний элемент <value> , который включает текстовое описание набора данных.
<url> Да Дочерний элемент <info> . Ссылка на URL-адрес с дополнительной информацией о наборе данных.

Информация о поставщике

Элемент <provider> содержит информацию о поставщике набора данных. Пример и подробная информация о соответствующих элементах XML перечислены ниже.

Пример

<provider>
  <name>
    <value>Bureau of Statistics</value>
  </name>
  <url>
    <value>http://www.example.com</value>
  </url>
</provider>

Элементы

Элемент Необходимый? Описание
<provider> Да Содержит всю описательную информацию о поставщике набора данных. Включает дочерние элементы <name> и <url> .
<name> Необязательный Дочерний элемент <provider> . Включает дочерний элемент <value> , который идентифицирует имя поставщика набора данных.
<url> Необязательный Дочерний элемент <info> . Ссылка на URL-адрес с дополнительной информацией о поставщике набора данных.

Концепции

Описание

Каждый набор данных содержит одно или несколько понятий . Концепция — это определение типа данных, которые появляются в наборе данных. Например, набор данных с демографическими данными о населении может содержать понятия «страна», «штат», «население» и «год». Значения данных, соответствующие данному понятию, называются экземплярами этого понятия. Понятия обычно описываются в наборе данных, но некоторые понятия (например, время или год) могут быть описаны во внешних наборах данных.

Каждое понятие может иметь одно или несколько свойств . Свойство — это характеристика экземпляра понятия, которая остается стабильной во времени. Например, концепция страны может иметь такие свойства, как name , population » и capital .

Концепты также могут иметь один или несколько атрибутов . Атрибуты предоставляют информацию на уровне концепции, а не ее отдельных экземпляров. Например, если бы у нас был набор данных с концепцией уровня безработицы, мы могли бы использовать атрибут, чтобы указать, что эта концепция представляет собой процент. Другим примером общего использования атрибутов является предоставление информации об единицах.

Пример

Ниже приведен пример концепции страны с уникальным идентификатором country и name свойства. Идентификатор концепции можно использовать для ссылки на концепцию из срезов и таблиц.

<concept id="country" extends="geo:location">
  <info>
    <name><value>Country</value></name>
    <description>
      <value>My list of countries.</value>
    </description>
  </info>
  <type ref="string"/>
  <property id="name">
    <info>
      <name><value>Name</value></name>
      <description>
        <value>The official name of the country</value>
      </description>
    </info>
    <type ref="string" />
  </property>
  <property concept="geo:continent" isParent="true"/>
  <property id="capital" concept="geo:city" />
  <table ref="countries_table" />
</concept>

Вот как работает этот пример.

  • Этот код описывает концептуальную страну, которая имеет идентификатор country и свойства name , continent и capital .
  • Эта концепция расширяет geo:location , каноническую концепцию локаций . Расширяя geo:location , country наследует все свойства и атрибуты, определенные расширенной концепцией: имя свойства, описание, URL-адрес, широту и долготу. country может переопределить некоторые из этих атрибутов и свойств, если это определение соответствует определению, предусмотренному расширенной концепцией.
  • Элемент <info> концепта описывает ключевую информацию о концепте. Это отображается на целевой странице набора данных в Public Data Explorer.
  • Концептуальный элемент <type> относится к типу контента. В данном случае это строка, но она может отличаться. Концепция Population будет иметь тип integer ; концепция Eurovision winner может иметь логический тип.
  • Элемент <property> описывает каждое свойство концепции, включая его уникальный идентификатор ( id ), info и type . Свойства также могут ссылаться на концепции, чтобы указать, что их значения являются допустимыми экземплярами этих концепций.
  • Концепция ссылается на таблицу данных, которая указывает на файл CSV, содержащий фактические данные. На таблицу данных ссылаются следующим образом: <table ref="countries_table"/> .

    Если ваша концепция ссылается на таблицу, связанный файл данных должен содержать список всех экземпляров концепции. Например, вы не можете создать таблицу, в которой будут перечислены только несколько стран, включенных в набор данных. (Если вас интересует какая-то группа стран, вы можете создать для их описания отдельную концепцию. Например, mycountries .)

Элементы

Элемент Необходимый? Описание
<concepts> Да Элемент верхнего уровня. Содержит все элементы <concept> .
<concept> Да Определяет концепцию. Значение обязательного id атрибута должно быть уникальным для концепции в наборе данных. Если понятие ссылается на таблицу данных понятия, значение id должно соответствовать заголовку столбца, описывающему понятие в таблице данных. Атрибут extends может использоваться для обозначения того, что это понятие расширяет другое понятие. Значение extends должно соответствовать идентификатору понятия, определенного в том же наборе данных, или иметь форму prefix:concept_id , где concept_id — это идентификатор понятия, определенного в импортированном внешнем наборе данных, связанном с prefix .
<info> Необязательный Содержит описательную информацию о концепции.
<name> Да Дочерний элемент <info> . Название концепции. Дочерний элемент <value> содержит текст — например, Country .
<description> Необязательный Дочерний элемент <info> . Включает дочерний элемент <value> , который включает текстовое описание концепции.
<url> Необязательный Дочерний элемент <info> . Включает дочерний элемент <value> , который включает URL-адрес концепции.
<pluralName> Необязательный Дочерний элемент <info> . Название понятия во множественном числе. Дочерний элемент <value> содержит текст — например, Countries .
<totalName> Необязательный Дочерний элемент <info> . Имя для комбинации всех экземпляров понятия. Дочерний элемент <value> содержит текст — например, в случае концепции country это может быть World .
<type> Необязательный Определяет тип контента, описываемого концепцией. Обязательный атрибут ref имеет следующие допустимые значения:
  • нить
  • плавать
  • целое число
  • дата
  • логическое значение
Тип можно опустить, если концепция расширяет другую концепцию, и в этом случае он наследуется от расширенной концепции.
<property> Необязательный

Свойство понятия, такое как capital . Значение обязательного id атрибута должно быть уникальным для концепции. Необязательный атрибут concept может использоваться для указания того, что значения этого свойства являются экземплярами данного понятия. Если указано concept , то id можно опустить; его значение неявно определяется как идентификатор ссылочного понятия (например, <property concept="geo:country"/> эквивалентно <property id="country" concept="geo:country"/> ).

Свойство может содержать логический атрибут isParent , указывающий, что связь между экземпляром понятия и значением этого свойства является иерархической.

Свойство может содержать логический атрибут isMapping , указывающий на наличие сопоставления 1-1 между экземплярами понятия и значениями свойства.

Свойство может указывать вложенную info и type , которые определяются так же, как и для концепции. type требуется, если свойство не указывает атрибут concept , и должен соответствовать типу понятия, на которое ссылается, если это так.

<attribute> Необязательный

Атрибут понятия. Атрибуты представляют собой дополнительную информацию о концепции (например, ВВП — это процент). Значение обязательного id атрибута должно быть уникальным для концепции. Необязательный атрибут concept может использоваться для указания того, что значения этого атрибута являются экземплярами данного понятия. Если указано concept , то id можно опустить. Его значение неявно определяется как идентификатор ссылочного понятия. (например, <attribute concept="unit:unit"/> эквивалентен <attribute id="unit" concept="unit:unit"/> .

Атрибут может указывать вложенную info и type , которые определяются так же, как и для понятия. type требуется, если атрибут не указывает атрибут concept , и должен соответствовать типу ссылочного понятия, если это так.

<table> Необязательный Идентифицирует таблицу данных, содержащую данные для концепции. Значение обязательного атрибута ref должно соответствовать идентификатору таблицы, указанному в связанном элементе <table> .

Ломтики

Описание

Срез — это комбинация концепций, для которых существуют данные. Срез содержит два типа ссылок на концепции: измерения и метрики . Измерение – это концепция, которая используется для сегментации или фильтрации ваших данных. С другой стороны, метрика описывает наблюдаемое значение или значения, связанные с каждой точкой данных.

Как правило, измерения являются категориальными, тогда как метрики представляют собой некатегориальные, изменяющиеся во времени числовые значения. Вот некоторые прототипные примеры каждого из них:

  • Размеры : страна, штат, округ, регион, год, месяц, пол, возрастная категория, отраслевой сегмент.
  • Метрики : население, ВВП, уровень безработицы, грамотность, доходы, стоимость, цена.

Пример

<slices>
  <slice id="country_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="country_slice_table"/>
  </slice>
  ...
</slices>

Вот как работает этот пример.

  • Этот срез представляет численность населения по странам.
  • Он имеет метрическую population , а также размеры country и year . Каждое измерение — это концепция, уже определенная где-то еще. Концептуальная country и population показателей существуют в том же наборе данных, что и текущий срез, и упоминаются следующим образом: concept="country"
  • year концепции существует во времени импортированного набора данных и идентифицируется префиксом, используемым перед именем концепции ( year ), например: concept="time:year"
  • Срез ссылается на таблицу данных, которая указывает на файл CSV, содержащий фактические данные. На таблицу данных ссылаются следующим образом: <table ref="country_slice_table"/> . ( Информацию об импорте наборов данных см. выше.)

Примечание. В целом ваш набор данных будет более гибким, если вы сведете показатели к минимуму и вместо этого создадите значимые измерения. Например, вместо создания показателей Female Unemployment и Male Unemployment создайте единый показатель Unemployment и добавьте измерение Gender , имеющее экземпляры Female и Male .

Элементы

Элемент Необходимый? Описание
<slices> Да Элемент верхнего уровня. Содержит все элементы <slice> .
<slice> Необязательный Идентифицирует фрагмент. Значение обязательного id атрибута должно быть уникальным для среза.
<dimension> Необязательный Определяет размер среза, ссылаясь на концепцию. Значение обязательного concept атрибута должно точно соответствовать уникальному идентификатору понятия и использовать допустимый префикс, если понятие принадлежит внешнему импортированному набору данных.
<metric> Необязательный Определяет метрику среза, ссылаясь на концепцию. Значение обязательного concept атрибута должно точно соответствовать уникальному идентификатору понятия и использовать допустимый префикс, если понятие принадлежит внешнему импортированному набору данных.
<table> Да Идентифицирует таблицу данных, содержащую данные для среза. Значение обязательного атрибута ref должно соответствовать идентификатору таблицы, указанному в связанном элементе <table> .
<mapDimension> Необязательный Дочерний элемент <table> . Содержит concept атрибутов и toColumn ; значение первого — это измерение в срезе, а значение второго — столбец таблицы, соответствующий первому.
<mapMetric> Необязательный Дочерний элемент <table> . Содержит concept атрибутов и toColumn ; значение первого — это метрика в срезе, а значение второго — столбец таблицы, соответствующий первому.

Таблицы

Описание

Раздел tables файла DSPL идентифицирует таблицы данных, включенные в набор данных. На эти таблицы можно ссылаться по понятиям или по срезам. Каждый элемент <table> определяет столбцы таблиц и их типы и указывает на файл CSV, содержащий данные таблицы.

Пример

<tables>
  <table id="country_slice_table">
    <column id="country" type="string"/>
    <column id="year" type="date" format="yyyy"/>
    <column id="population" type="integer"/>
    <data>
      <file format="csv" encoding="utf-8">country_slice.csv</file>
    </data>
  </table>
  ...
</tables>

Вот как работает этот образец.

  • В этом примере описывается таблица country_slice_table . В таблице есть столбцы country , year и population .
  • Каждый столбец в таблице имеет уникальный идентификатор, определяемый атрибутом id . Этот идентификатор должен точно соответствовать заголовку соответствующего столбца в связанном файле данных.
  • Значение необязательного атрибута type определяет тип данных для каждого столбца.
  • Элемент <data> описывает фактический файл .csv (country_slice.csv), содержащий данные для таблицы. Формат файла всегда csv .

Элементы

Элемент Необходимый? Описание
<tables> Да Элемент верхнего уровня. Содержит все элементы <table> .
<table> Да Идентифицирует таблицу. Значение обязательного id атрибута должно быть уникальным для таблицы.
<column> Необязательный Дочерний элемент <table> . Информация о столбце, включенном в таблицу. Включает следующие атрибуты:
  • id (обязательно): идентификатор столбца.
  • type (необязательно): тип данных информации в указанном столбце. Допустимые значения: string , float , integer , date или boolean .
<data> Необязательный Дочерний элемент <table> . Файл данных, на который ссылается таблица. Если имя файла имеет форму URL-адреса (например, http://... ), то файл будет получен по соответствующему протоколу (HTTP, HTTPS или FTP); в противном случае файл с таким именем должен быть связан с набором данных. Значением требуемого format атрибута всегда является csv . Хотя атрибут encoding является необязательным, ваши файлы .csv должны иметь кодировку UTF-8.

Темы

Описание

Темы классифицируют понятия иерархически, что позволяет пользователям легче перемещаться по набору данных.

Элемент <topics> должен располагаться непосредственно перед элементом <concepts> в вашем файле DSPL. (Порядок элементов важен, и вы не сможете загрузить свой набор данных, если элементы отображаются в неправильном порядке.) Чтобы использовать темы, ссылайтесь на них из определения концепции.

Пример

Вот пример определения темы:

<topics>
  <topic id="population_indicators">
    <info>
      <name>
        <value>Population indicators</value>
      </name>
    </info>
  </topic>
  ...
</topics>
  

... и вот пример ссылки на эту тему из концепции:

<concept id="population">
  <info>
    <name>
      <value>Population</value>
    </name>
    <description>
      <value>Size of the resident population.</value>
    </description>
  <topic ref="population_indicators"/>
  <type ref="integer"/>
</concept>

Темы могут быть вложенными, и концепция может ссылаться на более чем одну тему.

Определение элемента

Элемент Необходимый? Описание
<topics> Да Элемент верхнего уровня. Содержит все элементы <topic> .
<topic> Да Определяет тему. Значение обязательного id атрибута должно быть уникальным для набора данных.
<info> Необязательный Дочерний элемент <topic> . Содержит информацию по теме.
<name> Необязательный Дочерний элемент <info> . Его дочерний элемент <value> определяет название темы.

Файлы данных DSPL

Помимо файла метаданных XML, набор данных DSPL также может включать один или несколько файлов данных в формате CSV. Каждый файл данных поддерживает таблицу в наборе данных, и ссылка на него находится в разделе <data>...</data> . Концептуально эти файлы и связанные с ними таблицы используются для представления либо определений понятий , либо данных срезов . Каждый из этих типов файлов данных описан более подробно ниже.

Обратите внимание, что независимо от назначения все файлы данных должны быть текстовыми файлами в формате UTF-8 с разделителями-запятыми (CSV). Файлы должны содержать только обычный текст; нет HTML. Вы можете создавать файлы данных вручную, но на практике вам придется обрабатывать данные либо в инструменте, содержащем исходный источник данных (например, электронную таблицу), либо в самом экспортированном файле.

Файлы могут быть объединены с набором данных или, если имя имеет форму URL-адреса, получены через HTTP, HTTPS или FTP из удаленного источника.

Файлы концептуальных данных

Файлы данных концепций содержат соответствующую информацию для каждой концепции. В определении концепции используется элемент <table> для ссылки на этот файл.

Пример

Вот пример таблицы для концепции country , определенной выше:

country, name
AD, Andorra
AF, Afghanistan
AI, Anguilla
AL, Albania
AO, Angola
AQ, Antarctica
AS, American Samoa

Вот как работает этот пример:

  • Если сопоставления не указаны, первая строка файла данных (заголовки столбцов) должна точно соответствовать идентификатору понятия и соответствующим идентификаторам свойств понятия, с которым связаны данные. Однако порядок столбцов не обязательно должен совпадать в файле данных и таблице понятий. В этом случае первый столбец связан с концепцией country , а второй столбец связан с name свойства.
  • Столбцы свойств являются необязательными; если свойство не имеет столбца в таблице, то его значение предполагается неопределенным для каждой строки. Например, в приведенной выше таблице отсутствуют столбцы для свойств latitude и longitude , поэтому страны не будут отображаться на карте.
  • Каждое значение поля id концепции (в данном случае country ) должно быть уникальным и непустым (пустым полем считается поле, содержащее ноль или только пробельные символы).
  • Значения свойств, ссылающихся на другие понятия, должны быть либо пустыми, либо быть допустимыми значениями ссылочного понятия.
  • Заключение значений в двойные кавычки не является обязательным, за исключением случаев, когда они содержат запятые, двойные кавычки или символы новой строки.
  • Экранируйте буквальную двойную кавычку, которая появляется в значении, предваряя ее другой двойной кавычкой.

Файлы данных срезов

Файлы данных срезов содержат соответствующие данные для каждого среза. В определении фрагмента используется элемент <table ref="..."> для ссылки на определение <table> , которое, в свою очередь, идентифицирует этот файл.

Пример

Вот пример файла .csv, содержащего данные для среза population_by_country , описанного выше:

country, year, population
AF, 1960, 9616353
AF, 1961, 9799379
AF, 1962, 9989846
AF, 1963, 10188299

Вот как работает пример:

  • Поле метрики — population . Поля country и year являются полями измерений.
  • Каждое значение поля измерения должно быть непустым. Это включает в себя временные измерения. Значения полей показателей могут быть пустыми. Пустое значение не представлено никаким символом.
  • Каждый заголовок столбца, который ссылается на концепцию (например, первое поле примера выше ссылается на country концепции), должен точно соответствовать уникальному идентификатору концепции в определении концепции.
  • Уникальная комбинация значений измерения, например AF, 2000 , может встречаться только один раз.
  • Строки в одном и том же временном ряду (т. е. строки, имеющие одинаковую комбинацию всех значений измерения, кроме времени) должны быть сгруппированы вместе, хотя их не требуется сортировать иным образом.

Расширенные функции

Многоязычные наборы данных

Переведенные значения XML

Вы можете использовать атрибут xml:lang с каждым элементом <value> в вашем файле DSPL. Этот атрибут определяет язык содержимого элемента с использованием стандартных языковых тегов W3C . Обратите внимание, что использование этой функции не является обязательным; если атрибут xml:lang не указан, предполагается, что содержимое представлено на английском языке.

В следующем примере показаны фрагменты набора данных на английском, болгарском, каталонском и упрощенном китайском языках:

<dspl ...>
  <info>
    <name>
      <value xml:lang="en">World Bank, World Development Indicators</value>
      <value xml:lang="bg">Световна банка, Индикатори за световно развитие</value>
      <value xml:lang="ca">Banc Mundial, Indicadors del desenvolupament mundial</value>
      <value xml:lang="zh-CN">国家/地区</value>
    </name>
    ...
  </info>

  <concepts>
    <concept id="country">
      <info>
        <name>
          <value xml:lang="en">Country</value>
          <value xml:lang="bg">Страна</value>
          <value xml:lang="ca">País</value>
          <value xml:lang="zh-CN">国家/地区</value>
        </name>
        ...
      </info>
      ...
    </concept>
    ...
  </concepts>

  ...
</dspl>

Переведенные свойства

В некоторых случаях вам может потребоваться предоставить переводы, выходящие за рамки метаданных уровня понятия, применяясь дополнительно (или вместо этого) к отдельным экземплярам понятий. Это особенно полезно, когда значения свойства понятия (например, имени) различаются в зависимости от языка.

Чтобы предоставить такие значения на нескольких языках, создайте один столбец в соответствующей таблице определений для каждой комбинации свойства/языка. Затем свяжите эти столбцы со связанными с ними свойствами и языками, добавив набор элементов <mapProperty xml:lang="..." ref="..." toColumn="..."> в тег ссылки на таблицу для концепция.

Вот пример, определяющий концепцию страны с названиями на английском, испанском и французском языках:

<concepts>
  ...
  <concept id="country" extends="geo:location">
    ...
    <property id="name">
      <info>
        <name>
          <value>Name</value>
        </name>
        <description>
          <value>The official name of the country</value>
        </description>
      </info>
      <type ref="string" />
    </property>
    ...
    <table ref="countries_table">
      <mapProperty xml:lang="en" ref="name" toColumn="name_en"/>
      <mapProperty xml:lang="es" ref="name" toColumn="name_es"/>
      <mapProperty xml:lang="fr" ref="name" toColumn="name_fr"/>
    </table>
  </concept>
  ...
</concepts>

...

<tables>
  ...
  <table id="countries_table">
    <column id="country" type="string"/>
    <column id="name_en" type="string"/>
    <column id="name_es" type="string"/>
    <column id="name_fr" type="string"/>
    ...
  </table>
</tables>

Тогда CSV-файл для countries_table будет иметь следующую форму:

country,name_en,name_es,name_fr,...
...
US,United States of America,Estados Unidos de América,États-Unis d'Amérique,...
...

Картографируемые концепции

Многие понятия (например, округ, штат и город) имеют экземпляры, соответствующие географическим местоположениям. DSPL поддерживает геокодирование этих экземпляров, чтобы их можно было визуализировать на анимированной диаграмме карты общедоступных данных Google.

Если ваша концепция эквивалентна странам мира, штатам США или округам США, вы можете просто дать ссылку на соответствующую каноническую концепцию Google; явного геокодирования не требуется. Дополнительную информацию см. в Руководстве по каноническим концепциям .

Если нет, то вам нужно сделать вашу концепцию картографируемой. Первый шаг — расширить его от geo:location :

<concept id="..." extends="geo:location">
  ...
</concept>

Затем вы должны явно добавить широту и долготу в качестве свойств:

<concept id="..." extends="geo:location">
  ...
  <property id="latitude"/>
  <property id="longitude"/>
</concept>
  

Значения для них затем указываются в виде столбцов в соответствующей таблице данных определения понятия.

Концептуальные отношения

Концепции часто связаны с другими концептами структурированным образом. Например, экземпляр континента может включать в себя несколько экземпляров страны, которые, в свою очередь, могут содержать несколько экземпляров штата или провинции. Кодирование этих отношений в метаданных набора данных позволяет использовать более широкие возможности визуализации, чем это было бы возможно в противном случае, например, отображение свертываемого дерева местоположений на выбор.

В разделах ниже мы описываем концептуальные отношения, поддерживаемые в схеме DSPL.

Иерархии

Иерархии концепций представлены в DSPL с помощью атрибута isParent="true" в теге <property> дочерней концепции, который содержит идентификаторы экземпляров родительской концепции.

Например, концепция округа США в Google имеет следующую форму:

<concept id="us_county" extends="geo:location">
  <info>
    <name>
      <value xml:lang="en">County</value>
    </name>
    ...
  </info>
  ...
  <property id="state" concept="us_state" isParent="true"/>
  ...
  <data>
    <table ref="reference_us_counties"/>
  </data>
</concept>
  

В таблице вспомогательных данных есть столбец state с двухбуквенным кодом штата для каждого округа. Этот тип метаданных позволяет Public Data Explorer отображать штаты и округа в виде иерархии, что значительно упрощает исследование для пользователей.

Обратите внимание, что у концепции может быть много дочерних элементов, но не более одного родителя .

Сопоставления

Отображения понятий (т. е. понятия, которые представляют, по сути, одно и то же) представлены через атрибут isMapping="true" в теге property отображаемого понятия.

Указание того, что одно понятие сопоставляется с другим, позволяет первому наследовать все свойства и атрибуты второго. Среди других приложений это полезно для «связывания» личных географических концепций с теми, которые определены в каноническом наборе геоданных Google:

<concept id="my_country" extends="geo:location">
  <info>
    <name>
      <value xml:lang="en">Country</value>
    </name>
    ...
  </info>
  ...
  <property id="google_country_code" concept="geo:country" isMapping="true"/>
  <data>
    <table ref="countries_concept"/>
  </data>
</concept>
  

Расширения

Расширения концепции обозначаются посредством элемента extends в соответствующем определении концепции. Расширения полезны для указания того, что конкретная концепция является подклассом другой, более широкой концепции. Расширенная концепция наследует все атрибуты и свойства своего родителя, а также может добавлять дополнительные.

Например, концепция currency Google расширяет unit :

<concept id="unit">
  ...
</concept>

<concept id="currency" extends="unit">
  <info>
    <name>
      <value xml:lang="en">Currency unit</value>
    </name>
    ...
  </info>
  ...
  <table ref="currency_table"/>
</concept>
  

Дополнительные объяснения и примеры см. в обсуждении расширений концепций в руководстве .

Отправка вашего набора данных

Чтобы отправить набор данных в Google Public Data Explorer, следуйте этим инструкциям:

  1. Создайте каталог.
  2. Сохраните файл набора данных dspl в созданном вами каталоге. Обязательно используйте расширение .xml.
  3. Сохраните все локальные файлы .csv в том же каталоге. Файлы данных, на которые ссылаются URL-адреса, можно опустить.
  4. Заархивируйте каталог.
  5. Загрузите свой набор данных в Google Public Data Explorer.

После того как ваш набор данных будет загружен и проверен, вы сможете протестировать его, войдя в свою учетную запись Google. Он не будет опубликован, пока вы не проверите его и не сообщите нам, что он готов.