Поговоримо про формати даних

Формат даних (формат файлів) – це інформація за допомогою якої користувачі (як і операційна система) можуть швидко ідентифікувати вміст даних без необхідності зчитування вмісту всього файлу.

Саме тому до вибору формату даних треба підходити відповідально. Під час визначення формату для оприлюднення набору даних необхідно зважати саме на відповідність типу даних файловому формату. Найбільш поширеною помилкою, яка виникає під час публікації наборів даних, є невідповідність файлового формату типу даних, що у ньому міститься. Зокрема, некоректною є публікація таблиць (структурованих даних) у форматах DOC(X) чи PDF, призначених для текстових даних, або у форматах JPG чи PNG, призначених для графічних даних. 

Крім того, створювати набори даних потрібно у так званих відкритих файлових форматах, тобто таких, що не залежать від платформи та доступні без обмежень. До відкритих форматів, зокрема, належать формати, CSV, JSON та XML. Проте давайте коротко розглянемо й інші формати даних детальніше, без прив’язки до структурованих даних.

TXT

TXT (Text File) – це стандартний текстовий формат, що містить текстові дані, які, як правило, організовані в вигляді рядків або взагалі не мають форматування. Даний формат є основою для багатьох більш спеціалізованих форматів, таких як HTML, XML, CSV. 

Файли TXT універсальні та вкрай прості за своєю природою, а тому їх можна відкривати на будь-якій операційній системі: за допомогою фактично будь-якого текстового редактора. У випадку Windows, наприклад, це Блокнот.

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

Головним недоліком використання файлів TXT є те, що файли вони займають більше місця в порівнянні з іншими текстовими файлами.

HTML 

HTML (від англ. HyperText Markup Language – “мова гіпертекстової розмітки”) – це мова тегів, яка є стандартною мовою розмітки документів у Всесвітній мережі Інтернет. 

Фактично будь-яка вебсторінка – це HTML-код, який інтерпретується браузерами; отриманий в результаті інтерпретації форматований текст у “дружньому” для користувача вигляді відображається на екрані монітора комп’ютера або мобільного пристрою.

У всесвітній павутині, HTML-сторінки, як правило, передаються браузерам від сервера за допомогою протоколів HTTP або HTTPS, у вигляді простого тексту або з використанням шифрування.

До речі, код будь-якої вебсторінки є доступним для всіх. Щоб побачити його, потрібно клацнути правою кнопкою миші та обрати опцію подивитися вихідний код” або ж просто натиснути на клавіатурі CTRL + U.

HTML – тегова мова розмітки документів, тобто будь-який документ формату HTML являє собою набір елементів, початок і кінець кожного елемента його позначається спеціальними позначками – тегами. Що цікаво, елементи можуть бути порожніми, тобто не містять ніякого тексту та інших даних (наприклад, тег переносу рядка <br>). У цьому випадку зазвичай не вказується закриваючий тег.

PDF

PDF (Portable Document Format) – універсальний файловий формат, який дозволяє зберігати шрифти, посилання, зображення, аудіо, відео, текст та власне сам макет вихідного документа незалежно від того, на якій із безлічі платформ чи додатків такий документ створювався. На сьогодні, формат PDF, що був винайдений компанією Adobe, є відкритим стандартом, підтримуваним Міжнародною організацією зі стандартизації (ISO). 

Беззаперечною перевагою формату pdf є той факт, файли даного типу підтримують можливість електронного підпису і можуть переглядатися за допомогою безкоштовного програмного забезпечення Acrobat Reader DC. 

Крім того, є й інші можливості формату:

  1. Можуть захищатися паролем для запобігання копіювання та редагування.
  2. Всі файли PDF відповідають стандартам ISO 32000 з обміну електронними документами, включаючи спеціальні стандарти.
  3. Файли можуть виправлятися для видалення конфіденційної інформації без можливості відновлення.
  4. Забезпечують зручний пошук, включаючи пошук по сканованому тексту, який був перетворений за допомогою технології оптичного розпізнавання Символів (OCR).
  5. Працюють з допоміжними технологіями, які роблять файли PDF доступнішими для людей з обмеженими можливостями, такими як слабкий зір або сліпота.
  6. Ви можете з легкістю перетворювати документи Microsoft Word, файли Excel і презентації PowerPoint у формат PDF.

XLSX

Формат даних .xlsx відомий нам передусім завдяки програмі Microsoft Excel. Звісно, крім відомого Excel, його  можна прочитати й у більшості табличних редакторів: Apple Numbers, Google Docs, LibreOffice тощо.

Загалом xlsx-файл являє собою віртуальну таблицю, розділену на стовпці та рядки, що формують комірки. У класичному табличному редакторі стовпці проіндексовані латинськими літерами, а рядки – цифрами.

Кожна клітинка може містити як фіксовані дані, так і формули, часто пов’язані з даними, іноді навіть в інших файлах. Формат XLSX дозволяє користувачеві змінювати форматування тексту: його шрифт, колір, вирівнювання (в комірці) і інші параметри. Крім того, документ може містити зображення, а також діаграми, побудовані на основі даних в певних комірках. 

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

CSV

CSV (від англ. comma-separated values, “значення, розділені комою”) – простий текстовий відкритий формат, призначений для представлення табличних даних. 

Формат CSV має свої особливості:

  • Кожен рядок файлу – це один рядок таблиці.
  • Рядки розділені знаком нового рядка \n.
  • Роздільником (delimiter) значень стовпців найчастіше є символ коми “,”. Більшість програм широко трактують цей формат і тому, на практиці, використовуються й інші роздільники, зокрема крапка з комою (semicolon) чи табуляція (tap).
  • Значення, що містять так звані зарезервовані символи (лапки, кома, крапка з комою, новий рядок) охоплюються подвійними лапками (“). Якщо у значенні зустрічаються лапки – вони представляються у файлі у вигляді двох лапок поспіль.
  • Нецілі числа розділені крапками: 1498.54

Даний набір даних можна легко імпортувати, наприклад, до Excel (Вкладка “Дані” –> “З тексту”) та отримати інформацію у вигляді таблиці.

Загалом .csv є дуже простим та відносно компактним форматом даних. Він може доволі легко сприйматися людиною, його можна відкрити величезною кількістю програм. Проте даний формат також має ряд недоліків:

  • Не підтримує ієрархію даних.
  • Не підтримує зв’язок між даними.
  • Придатний лише для таблиць.
  • Заголовки в таблиці не є обов’язковими.

Крім того, при збереженні файлу у форматі CSV, Excel за замовчуванням використовує кодування Вашої операційної системи, це зокрема впливає на розділювач стовпців та десятковий розділювач.

Так, в реаліях України (українська чи російська локалізація Windows) в якості десяткового розділювача чисел здебільшого використовується кома “,”. Таким чином, Ваш Excel, за замовчуванням, зберігатиме csv-файли з розділювачем “;” і комами замість крапок в не цілих числах. 

При збереженні файлів у форматі .csv варто звертати на це увагу або ж для уникнення цієї проблеми можна скористатися Google Spreadsheets, LibreOffice Calc чи OpenRefine.

JSON

JSON (англ. JavaScript Object Notation) – текстовий формат обміну даними, що заснований на JavaScript. Якщо Ви маєте великий ієрархічний масив даних – обирайте JSON. 

Загалом даний формат:

  • компактний та структурований;
  • не чутливий до відступів;
  • стандартизований (RFC 7159, ECMA 404);
  • завдяки ієрархічній структурі дозволяє зменшити розмір файлу з ієрархічними даними;
  • за наявності певного досвіду чи спеціальних розширень (для браузера Google Chrome – це JSONView) може легко сприйматися людиною.

Цей формат чудово підходить для передачі даних через API.

XML

XML (англ. eXtensible Markup Language) – ієрархічний формат даних, створений ще у 1994 році та рекомендований Консорціумом Всесвітньої павутини (W3C). У ньому дані організовані в об’єкти, які можуть містити інші об’єкти. Однією з головних переваг XML є його гнучкість. Формат XML дещо схожий на структуру тегів HTML на вебсторінці. 

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

Беззаперечною перевагою XML є те, що у файлі, крім основних даних можна розміщати метадані (описи, характеристики, реквізити), вкладені файли (наприклад, картинки, стилі тексту), довідники тощо.

Проте, попри ряд значних переваг, XML має і суттєві недоліки: внаслідок повторення тегів та відступів файли цього формату можуть бути значними за розміром. Крім того, у порівнянні з CSV та JSON, даний формат є значно складнішим для парсингу та обробки.

Вже розглянуті нами дані про маршрути та вартість проїзду у форматі XML можуть виглядати так:

GeoJSON

GeoJSON – це відкритий формат, для кодування різноманітних географічних структур даних, заснований на форматі JSON.

Формат може зберігати різні типи для опису географічних об’єктів, такі як: точки (адреси та місця розташування), лінії (вулиці, шосе, кордони), полігони (країни, штати, ділянки землі). Також можуть зберігатися так звані мультитипи, які являють собою об’єднання одразу декількох типів.

Подальшим розвитком GeoJSON є TopoJSON, розширення GeoJSON, яке кодує геопросторову топологію, і, як правило, забезпечує менший розмір файлів. Сьогодні даний формат підтримується більшістю Геоінформаційних систем, а також безпосередньо застосовуються при публікації інтерактивних картографічних даних, зокрема засобами бібліотек OpenLayers та Leaflet.