guide

Форматы файлов

Languages:  de  el  en  es  fr  he  hr  id  is  it  ja  ko  lt  lv  my  ne  nl_BE  pt_BR  ro  ru  zh_CN  zh_TW 

Обзор форматов файлов

JSON

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

XML

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

RDF

Консорциум W3C рекомендует формат под названием RDF. В нём информацию можно представить таким образом, чтобы данные из разных источников можно было легко комбинировать. Данные RDF могут храниться в XML и JSON, помимо прочих представлений. RDF поощряет идентификацию через URL, благодаря чему {term:открытые данные} можно удобно обменивать через сеть. RDF пока ещё мало распространён, но стал тенденцией инициатив в области открытого правительства, включая британский и испанский проекты в области связанных данных. Изобретатель Веб, Тим Бернерс-Ли, недавно предложил пятизвёздную_ схему, в которой связанные данные RDF значатся одной из целей для инициатив в области открытых данных.

Электронные таблицы

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

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

Файлы с разделителями

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

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

Текстовый документ

Для демонстрации многих типов данных, к примеру, — относительно стабильных списков рассылки или чего-то подобного, — может быть достаточно обычных форматов типа Word, ODF, OOXML или PDF. Их распространение может быть недорогим, поскольку зачастую именно в этом формате данные и производятся на свет. Формат не предоставляет никаких средств контроля за структурой, из-за чего ввести данные автоматически зачастую бывает трудно. Старайтесь использовать шаблоны для документов, которые будут показывать данные для повторного использования, так чтобы их, по крайней мере, можно было извлечь.

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

Простой текст

Компьютеры легко читают документы в формате простого текста (.txt). Однако, метаданные о структуре в них, как правило, отсутствуют, из-за чего разработчикам приходится писать парсер для разбора документа.

При обмене текстовыми файлами между операционными системами возможны проблемы. MS Windows, Mac OS и прочие Unix-подобные ОС по-разному сообщают компьютеру, что достигли конца строки.

Сканы документов

Пожалуй, наименее подходящая форма для большинства данных. Впрочем, TIFF и JPEG-2000 по крайней мере позволяют документировать, что на картинке — вплоть до того, чтобы хранить полный контекст документа вместе с его фотокопией. Может пригодиться для отображения данных, которые не были рождены в электронной форме (типичным примером может послужить старые церковные записи и другой архивный материал) — картинка лучше, чем ничего.

Проприетарные форматы

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

HTML

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

Обычно лучше всего хранить данные в HTML-таблицах; также важно, чтобы разные поля данных отображались с заданными идентификаторами, благодаря которым их можно будет легко найти и обработать. Yahoo разработала инструмент (http://developer.yahoo.com/yql/), который добывает структурированную информацию с вебсайтов; подобный инструмент может гораздо больше, если данные правильно разметить.

Открытые форматы файлов

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

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

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

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

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

{term:Открытые правительственные данные}, таким образом, лучше всего публиковать в открытых машиночитаемых форматах.

Пример: данные британского трафика

Программист Эндрю Николсон участвовал в кампании против строительства Восточного объезда Вестбери — новой дороги в Британии (кампания завершилась успехом). Он хотел получить и использовать данные об уличном движении, которыми обосновывали предложения. Он смог получить некоторые данные благодаря запросам о свободе информации, но местное правительство выдало данные в проприетарном формате, который читался только программой компании Saturn. Компания занимается исследованиями и предсказаниями уличного движения. Никаких версий «только для чтения» не предлагалось, и группе Эндрю ничего не оставалось, кроме как купить лицензию на программу. В итоге они заплатили 500 £ (600 €), воспользовавшись образовательной скидкой. Цены на продукты Saturn по прайс-листам на апрель 2010 года были от 13.000 £ (15.000 €); большинству обычных граждан они не по карману.

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

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

Как используется этот формат?

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

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

Веб-сервисы

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

База данных

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

Удалённый доступ к данным вызывает определённые проблемы с безопасностью; кроме того, доступ к данным имеет смысл только если структура базы данных и значения отдельных полей и записей хорошо документированы. Зачастую самый простой и недорогой способ решить проблемы безопасности — создать веб-сервис для демонстрации данных.