Як оприлюднити таблицю та її структуру у формі відкритих даних

Примітка

Обговорення цього розділу в Google Документі або на GitHub Issues.

Табличні дані

Табличні дані - прості у створенні та ефективні у використанні. Таблиця - це впорядкована сукупність колонок та рядків. Кожен рядок таблиці містить один запис. Кожна колонка - значення, що змінюються від рядка до рядка. Назви колонок розміщуються в шапці. На перетині рядків та колонок знаходяться комірки. З цього визначення випливає, що таблиця не може містити заголовків та об’єднаних комірок. Колір, шрифт, інше форматування тексту та комірок не є даними. Розглянемо приклад пустої таблиці на 4 колонки та 5 рядків.

Колонка 1 Колонка 2 Колонка 3 Колонка 4
Рядок 1      
Рядок 2      
Рядок 3      
Рядок 4      
Рядок 5      

Наповнимо таблицю даними про обласні центри, що розміщені на річці Дніпро (за даними Вікіпедії). Кожним рядком у таблиці є запис про певне місто, а стовпчиком - його характеристики (назва, кількість населення, площа, густота населення).

Назва міста Населення, осіб Площа, кв. км Густота населення (осіб на кв. км.)
Київ 2937239 848 3463.7
Черкаси 277944 69 4028.2
Дніпро 1000506 415 2410.9
Запоріжжя 743113 331 2245.1
Херсон 291428 145 2009.8

Вести таблиці необхідно у Microsoft Excel, Google Таблицях, LibreOffice Calc, а зберігати - у форматах XLS, XLSX, ODS або CSV. Категорично не рекомендується використовувати Microsoft Word, Google Документи, LibreOffice Writer тощо, та зберігати таблиці у форматах DOC, DOCX, ODT, RTF, PDF, HTML. Детальніше про роботу з таблицями можна дізнатися за посиланнями: Відкриті дані: формати та правила створення (Texty.org.ua, 2017), Організація даних у таблицях (К. Броман, К. Ву, 2018).

Шапка таблиці

Для того, щоб таблиці в наборі можна було легко завантажувати до баз даних, створювати на їх основі застосунки або аналізувати, їх шапка має містити лише латинські літери, цифри та нижні підкреслення - _. Перетворимо шапку таблиці відповідно до цих правил.

name population area populationDensity
Київ 2937239 848 3463.7
Черкаси 277944 69 4028.2
Дніпро 1000506 415 2410.9
Запоріжжя 743113 331 2245.1
Херсон 291428 145 2009.8

Як можна побачити, назви колонок стали лаконічними, пробіли були видалені, а для відділення слів одне від одного використаний, так званий, нижнійВерблюжийРегістр (перше слово пишеться з маленької літери, а кожне наступне - з великої). Тепер таблиця стала машиночитаною, однак, частина важливої інформації з шапки втрачена. Наприклад, одиниці виміру кількості населення, площі та густоти. На відміну від електронних таблиць, в CSV файлах неможливо вказати формат даних, які знаходяться в колонках (наприклад, число, текст, відсоткове значення, дата). Для того, щоб уникнути цих недоліків, використовуються структури.

Структура таблиці

Структура - це окремий файл, який описує кожну колонку вихідної таблиці. Існує два способи створення структури:

  1. використати форму у вкладці «Словник даних» на data.gov.ua;
  2. підготувати та завантажити окрему таблицю у форматі CSV.

У другому випадку, структура включатиме 4 колонки. У першій колонці (name) зазначаються назви колонок з вихідної таблиці, у другій (title) - короткі заголовки для користувачів, у третій (description) - довільний опис, у четвертій (datatype) - тип даних, де string - це рядок тексту, integer - це ціле число, а decimal - десятковий дріб.

name title description datatype
name Назва міста Назва обласного центру, який розміщений на річці Дніпро. string
population Кількість населення Кількість населення, осіб за даними https://uk.wikipedia.org/. integer
area Площа міста Площа міста, кв. км за даними https://uk.wikipedia.org/. integer
populationDensity Густота населення Густота населення, осіб на кв. км. за даними https://uk.wikipedia.org/. decimal

Структура оприлюднюються, як окремий ресурс набору даних. Наприклад, набір даних «Перелік обласних центрів, що розміщені на річці Дніпро» включатиме ресурси Cities.csv та CitiesStructure.csv. Якщо розпорядники володіють навичками створення JSON-файлів, структуру набору даних можна передставити відповідно до рекомендацій W3C «Model for Tabular Data and Metadata on the Web» або Table Schema від Frictionless Data. Наприклад, CitiesStructure.json.

Довідник структур

Для того, щоб легко й просто створювати структури таблиць рекомендуємо використати Довідник структур. У ньому зібрані найпоширеніші «компоненти» наборів даних, наприклад, описи документів, фізичних та юридичних осіб, контактних даних, адрес, тощо. Назви колонок та правила їх заповнення відповідають міжнародним стандартам (основним словникам). Це допомагає створювати якісні відкриті дані, які легко завантажувати до баз даних, аналізувати, перетворювати у інші формати.

Довідник структур дає лише загальний опис основних характеристик. Тому, його структури можна уточнювати, доповнювати та поєднувати, залежно від потреб власного набору. Наприклад, створимо структуру для переліку тимчасових споруд міста Тростянець. У наборі необхідно зазначити номер споруди, власника, адресу, номер та дату видачі дозволу.

  1. Колонка, що міститиме номери тимчасової споруди матиме назву identifier.
  2. Для того, щоб вказати інформацію про власника (юридичну особу або ФОП) використаємо колонки legalName та legalIdentifier з таблиці LegalEntity.
  3. Таблиця Address дає опис повної адреси: addressCountry, addressRegion, addressLocality, streetAddress.
  4. Номер та дату видачі дозволу можна взяти з таблиці Document: permissionIdentifier, permissionIssued (частина permission додана, щоб колонка identifier не дублювалась).

Таким чином, структура матиме наступний вигляд.

name title description datatype
identifier Номер тимчасової споруди Номер тимчасової споруди, що присвоєний рішенням Виконавчого комітету Тростянецької міської ради. Наприклад, 123-центр. string
legalName Назва власника Назва юридичної особи, яка є власником тимчасової споруди, відповідно до Єдиного державного реєстру юридичних осіб, фізичних осіб-підприємців та громадських формувань (ЄДР). Наприклад, ТОВ «Годівничка». string
legalIdentifier Номер власника у ЄДР Номер юридичної особи, яка є власником тимчасової споруди, в Єдиному державному реєстрі юридичних осіб, фізичних осіб-підприємців та громадських формувань (ЄДР). Наприклад, 01234567. string
addressCountry Країна Назва країни, де розміщена тимчасова споруда. У колонці має бути зазначено Україна. string
addressRegion Область Назва області, де розміщена тимчасова споруда. У колонці має бути зазначено Сумська область. string
addressLocality Населений пункт Назва населеного пункту, де розміщена тимчасова споруда. У колонці має бути зазначено Тростянець string
addressStreetAddress Вулиця та номер будинку Вулиця та номер будинку розміщення тимчасової споруди. Наприклад, вул. Лесі Українки, 18-а. string
permissionIdentifier Номер дозволу Номер дозволу на розміщення тимчасової споруди відповідно до рішення Виконавчого комітету Тростянецької міської ради. Наприклад, 98/45. string
permissionIssued Дата видачі дозволу Дата, якою виданий дозвіл, у форматі ISO 8601 (рррр-мм-дд). Наприклад, 2018-07-06. date