OpenGovData. Спецификации раскрытия данных

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

Скажу заранее — подготовка спецификаций и продумывание способов работы с данными проходили по принципу упрощения всего что только возможно и не вредит конечному результату. Определённым источником вдохновения была спецификация sitemaps которую не так давно начали использовать поисковые системы.

 

Спецификации

Итак, спецификация раскрытия данных, состоит из 3-х XSD схем:

И, для каждой из схем, доступна автоматически созданная документация:

 

 

Процесс импорта и экспорта данных

Теперь подробнее о том как с этими спецификациями будет происходить работа.

Фактически, вариантов работы с информацией два:

1. Данные подготовленные и загруженные на сайт opengovdata.ru

2. Общедоступные данные публикуемые на внешних ресурсах.

В первом случае описание источника данных производится внутри системы opengovdata.ru — технически это веб движок в котором можно заполнить все необходимые поля по данному источнику данных/массиву данных и который в итоге сформирует спецификацию источника в файла opendata.xml и присвоит зарегистрированному массиву данных постоянную ссылку permalink. Сами данные предварительно загружаются на сервер через HTTP/FTP/SFTP соответстветственно. 

Во втором случае данные источником данных является некий веб-сайт, например, если государственный орган или коммерческая компания желает сделать какие-либо свои данные общедоступными, то они подготавливают описание источника данных в виде файла opendata.xml с описанием массива и предоставляют его по некой постоянной ссылке на своём ресурсе. После чего регистрируют ссылку на описание источника данных на opengovdata.ru на специальной странице с указанием дублировать информацию или нет.

Если при регистрации источника данных указывается необходимость дублировать информацию, то все данные копируются на opengovdata.ru и раз в сутки, при необходимости, синхронизируются при том что эталонным источником данных остаётся внешний сайт. Если дублирования информации не происходит, а это может быть в случае если, например, объёмы данных очень велики, то синхронизируется только описание источника данных и присвоение ему постоянной ссылки в opengovdata.ru, а сами данные остаются на оригинальном сайте.

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

Применение спецификаций

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

  • opendata.xsd — используется для описания массива данных, включая описание полей, описание источника данных, описание организации ведущей данный источник информации, непосредственно сами данные или же ссылки на них. При этом данные могут предоставляться двумя способами:
    • включенными в описание массива данных — в этом случае данные описаны согласно спецификации в тэге table;
    • внешними источниками — в этом случае данные представлены в форматах: openDataXML, TSV, CSV, YAML, DBF и находятся во внешних файлах которые обнаружаемы по внешним ссылкам. Ссылки обязательно сопровождаются указанием типа данных и хэша рассчитанного по алгоритму SHA-512. Файлы данных могут также быть сжатыми с помощью Gzip — это должно определяться наличием у них расширения .gz (это сделано по аналогии со сжатием файлов sitemaps).
  • opendataxml.xsd — используется для унифицированного описания любых плоских табличных данных. Данный формат сознательно сделан предельно упрощённым и не несёт ничего кроме перечесления рядов таблицы и столбцов по каждому ряду. Фактически — это замена TSV формата, которая может быть удобна для некоторых систем которым из XML импортировать данные проще.  Цель этого формата представления данных не полнота описания, а унификация и простота последующей обработки.
  • opendataindex.xsd — используется для автоматизированной публикации открытых данных в виде индекса ресурсами готовыми их предоставлять. Например, сайт раскрывающий более одной базы данных может создавать сайт opendataindex.xml который, в свою очередь, зарегистрировать на сайте opengovdata.ru и при появлении новых массивов данных, они будут подтягиваться автоматически. В дальнейшем применение индекса открытых данных может быть через robots.txt (по аналогии с sitemaps) или же за счёт фиксированного имени файла в корне сайта, например, такого http://sitename.ru/opendataindex.xml 

Обновление информации в источниках

Данные представленные в описании массива данных (opendata.xml) могут присутствовать в двух формах:

 

  • статические неизменные данные
  • пополняемые данные.

 

Статические данные — это, фактически, данные которые уже собраны, зафиксированы и уже не будут меняться или пополняться. Например, к ним можно отнести какие-либо статистические данные за какой-либо уже прошедший временной период, а также редко изменяемые справочники по которым необходимо получать их последнюю редакцию, а не прошедшии версии.  При описании данных в спецификации opendata для статических данных используется тип full  в тэге tableref.

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

В opendata для пополняемых данные используется указание типа initial в тэге tableref при первоначальной загрузке информации и при последующих обновлениях тип указывается в update, а также в атрибуте updateid  — указывается число возрастающее на единицу с каждым последующим обновлением. 

 

Особенности и ограничения

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

Например, пока отсутствует возможность структурированного описания доступных веб сервисов и не табличных, а иерархических данных которые не укладываются в текущую простую форму описания. Сейчас, единственное что сделано в спецификациях отражающее такие случаи — это возможность указания нестандарных спецификаций во внешних файлах. Для этого предусмотрен специальный тэг specref в котором указывается ссылка на спецификацию которая может быть хоть описанием в виде документа, а в поле format тэга tableref указывается тип документа отличный от TSV, openDataXML и так далее. 

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

Готовые данные

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

Также эти данные перечислены в индексном файле http://export.opengovdata.ru/opendataindex.xml

Разумеется, эти данные только начало, и далее они будут появлятся в структурированной форме в разделе сайта http://opengovdata.ru/opendata/ 

Текущий статус спецификаций и данных

Проект сейчас идёт маленькими шажками и цель спецификаций и первых размещаемых массивов не в том чтобы охватить все возможные случаи и все возможные типы структур данных, а в том чтобы начать эту работу, итеративно усложняя и развивая данные. 

Как можно помочь проекту?

Многие задают вопрос как можно помочь проекту, я перечислю многие возможные способы:

1. Можно подготавливать данные по спецификациям и направлять их на публикацию в OpenGovData. Это можно сделать, например, через сообщество в Google Groups — http://groups.google.com/group/opengovdataru.

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

3. Для государственных органов и других владельцев общедоступных данных можно начать публиковать данные на государственных сайтах в форматах и, далее, регистрировать массивы данных в реестре данных opengovdata.ru . 

4. На законодательном уровне — проведение в Российское законодательство нормы по обязательному наличию структурированного описания в случае любых требований по публичности размещаемых данных. Я объективно понимаю что это займёт годы, но если этого не делать, то не годы, а десятилетия.

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

About This Author

Яндекс.Метрика