Почему открытые данные никому не нужны
В процессе работы над проектом для открытых данных пришлось изучить множество государственных источников данных. Это и федеральные порталы и муниципальные ресурсы. Вот наиболее известные источники открытых данных:
У всех этих ресурсов одни и те же болезни. Вот они:
- Невалидность данных.
- Разрозненность данных и отсутствие стандартов.
- Отсутствие единого механизма поиска.
- Отсутствие API для доступа к данным.
Этого достаточно чтобы отбить желание пользоваться ими и данными размещенными на них.
Теперь подробнее по каждому пункту и что с этим делать.
Search open data that is relevant to Canadians, learn how to work with datasets, and see what people have done with open data across the country.
Follow
Search through our Open data portal.
Search through our Open data portal
Looking for data about Government of Canada services, financials, national demographic information or high resolution maps? Discover that and more through our open data portal, your one-stop shop for Government of Canada open datasets.
Open
maps
Explore the Government of Canada’s geospatial data, services, and
applications and create customized maps.
Open
Data Inventory
Review the open data inventories submitted by Government of Canada
departments and agencies.
API Store
Search through the one-stop shop for Government of Canada Application Programming Interfaces (APIs). These APIs provide a wealth of government data and information for you to build new applications and services for Canadians.
Apps
gallery
Browse and download apps that were built both by the Canadian public
and the Government of Canada that use open data.
Open Data User Stories
Explore how Canadians are using open data to power innovation and its impact on communities.
Submit your
app
Learn what open data is, how to get the most out of it, and explore
the principles that are guiding the Government of Canada’s open data
initiatives.
Data Visualization Primer
Learn how to tell a story through data. Explore the multi-step process and discover the benefits of developing interactive data visualization tools to enhance understanding and answers questions.
Public Service Commission’s Staffing Dashboard
Manipulate the SNPS data and customize your queries to get the most useful and relevant information to meet your needs. Designed using open-source technology, this tool contains the survey data, by first official language, region, organisation and organisation size. The data is presented in graphical format but is also available in tabular form for ease of analysis.
What’s new in open government?
On January 14, 2019, the OPEN Government Data Act, as part of the Foundations for Evidence Based Policymaking Act, became law. The OPEN Government Data Act makes Data.gov a requirement in statute, rather than a policy. It requires federal agencies to publish their information online as open data, using standardized, machine-readable data formats, with their metadata included in the Data.gov catalog. Data.gov is working with an expanded group of federal agencies to include their datasets in Data.gov as they implement the new law.
Open Government Directive
The Foundations for Evidence-Based Policymaking Act of 2018 (“Evidence Act”) signed into law on January 14, 2019, emphasizes collaboration and coordination to advance data and evidence-building functions in the Federal Government by statutorily mandating Federal evidence-building activities, open government data, and confidential information protection and statistical efficiency.
Title II of the Foundations for Evidence Based Policymaking Act, the OPEN Government Data Act, requires additional agencies to comply with the statute by providing access to free, open, and machine readable data.
A list of software applications using data from data.gov can be seen at data.gov/applications.
Больше половины наборов данных (59,65%) относятся к категории «Государство». Около десяти процентов (9,56%) относятся к категории «Экономика». Близко к десяти процентам (7,61%) количество наборов данных в категории «Образование». Остальные — менее пяти процентов. Распределение вполне закономерно.
Будем расширять знакомство с размещенными на портале данными. Посмотрим статистику размещения на портале данных по дате первой публикации набора данных.
2017 год только начался, и вполне естественно, что количество данных, размещенных в 2017 году, будет увеличиваться. Да, пока я пишу текст, на портал выгружают новые наборы данных.
Видимо, кто-то успел назад в прошлое, успев разместить данные в далеком 1970 году.
В общем, картина понятна: сначала резкий рост, затем – стабильность. Хотя о стабильности говорить, наверное, еще рано.
Интересную картину можно увидеть, если рассмотреть распределение наборов данных по дате актуальности (дата, после которой должна быть обновлена текущая версия набора данных).
Сразу бросается 1 год. Таким образом, я обозначил наборы данных, которые не имеют даты актуальности. Исходя из определения даты актуальности, можно сделать вывод, что это наборы данных, которые вообще обновлять не надо. Естественно, что такие наборы данных имеют право на существование. Всегда есть архивные (исторические) данные, которые вряд ли поменяются (ну, если в них нет ошибок), и есть текущие – актуальные данные, которые постоянно меняются. И те, и другие могут представлять интерес. Ведь бывает такое, что надо узнать: а как оно там было в прошлом (при царе или при советской власти)? Но, конечно, более интересны актуальные (живые) данные, которые постоянно обновляются.
Даже если не очень внимательно рассматривать диаграмму, видно, что некоторые данные должны обновиться в достаточно далеком будущем. Можно сказать, что у тех, кто их разместил, потрясающая уверенность в завтрашнем дне. Ближайшие пять, десять, двадцать(?) лет у них ничего не изменится. А может это просто ошибка? И это возможно.
Но в целом картина достаточно радостная – почти половина данных планирует обновляться в текущем году.
И сейчас мы будем эту радостную картину подтверждать. Рассмотрим распределение наборов данных по дате последнего изменения.
Да. Опять 1 год. У этих наборов данных не было изменений. Сразу хочется кого-нибудь подловить. Типа, обещали обновить, а изменений не делали. Или не обещали обновить и обновили. Но это в следующий раз будем искать закономерности (или их отсутствие).
Объединим информацию о первой публикации и последнем обновлении. То есть, если было обновление – возьмем дату обновления, если обновления не было – возьмем дату первой публикации. В результате получится дата последнего изменения данных.
Красота. Четко видна тенденция – больше половины данных в последний раз изменялись или были созданы в 2016-2017 годах. Наверное, можно считать их актуальными.
Необходимо отметить один нюанс. Некоторые наборы данных повторяются: одно и тоже название набора данных и владелец встречаются в реестре по несколько раз.
Вместо обновления набор данных выкладывался еще раз. Иногда наборы выкладывались в другой категории. Но если рассмотреть наборы данных с одинаковым названием, владельцем и категорией, то картина будет следующей.
Как минимум, очень похоже. Но вряд ли критично. Некоторым владельцам данных, видимо, надо аккуратнее выкладывать данные.
Небольшая проверка по заполнению текстовых полей в паспортах наборах данных.
В качестве итога, разделим все наборы данных на две категории: все поля заданы, не задано хотя бы одно поле.
Тридцать процентов (30,3%) имеют хотя бы одно незаданное поле. В каком формате выкладывают данные?
Больше всего в обычном текстовом формате с разделителем (csv). На втором месте xml. На третьем json. Явный лидер формат csv – можно открыть в любом текстовом редакторе, импортировать практически куда угодно для обработки, при небольшом усилии вставить как таблицу в текстовый редактор. Формат xml тоже достаточно легко посмотреть. А вот с форматом json могут возникнуть проблемы. Если ориентироваться на Excel, как на самый часто используемый табличный редактор, то json это уже проблема. Можно, погуглив на эту тему, найти способ загрузки, но не прямой. Нет в Excel встроенных средств для загрузки json.
Конечно, проблема нестрашная, несмертельная, но неприятная. Наверняка, кого-то этот формат остановит или поставит в тупик.
Из распределения по годам видно, что со временем доминирование формата csv сохраняется.
Резко возрастет использование формата json. При этом сокращается использование формата xml.
И этому можно найти объяснение. Формат csv самый простой, поэтому часто используется. В то же время веб сервисы сейчас все чаще используют формат json и все реже xml.
Выводы
Больше половины данных, размещенных на портале открытых данных России относятся к категории «Государство».
Тридцать процентов паспортов наборов данных имеют хотя бы одно незаданное поле.
Самые распространенные форматы хранения открытых данных: csv, xml, json. При этом, наблюдается увеличение количества наборов данных в формате json и сокращение количества наборов данных в формате xml.
Что дальше?
После анализа наборов данных посмотрим, насколько часто они используются – просматриваются, скачиваются. Какие оценки ставят пользователи наборам данных? Какие наборы данных вызывают интерес? Как часто обновляются наборы данных? Какого размера наборы данных? И есть ли между всем эти взаимосвязь?
Albaniahttp://open.data.al/Algeriahttps://algeria.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/algeriaCKANAngolahttps://angola.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/angolaCKANAustriahttps://www.opendataportal.at/Wikimedia OsterreichOpen Knowledge OsterreichDanube UniversityCKANBeninhttps://benin.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/beninBotswanahttps://botswana.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/botswanaBurkina Fasohttps://burkinafaso.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/burkina-fasoBurundihttps://burundi.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/burundiCameroonhttps://cameroon.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/cameroonCape Verdehttps://caboverde.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/cape-verdeCentral African Republichttps://car.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/central-african-republicChadhttps://chad.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/chadComoroshttps://comoros.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/comorosCongo, Democratic Republic ofhttps://drcongo.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/democratic-republic-of-congoCongo, Republic ofhttps://congo.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/republic-of-the-congoDjiboutihttps://djibouti.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/djiboutiEgypthttps://egypt.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/egypthttp://www.erfdataportal.com/index.php/catalogEconomic Research ForumEritreahttps://eritrea.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/eriteriaEswatinihttps://eswatini.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/swazilandEquatorial Guineahttps://equatorialguinea.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/equatorial-guineaEthiopiahttps://ethiopia.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/ethiopiaGabonhttps://gabon.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/gabonGambiahttps://gambia.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/gambiaGhanahttps://ghana.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/ghanaGuineahttps://guinea.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/gunieaGuinea Bissauhttps://guineabissau.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/guinea-bissauIvory Coasthttps://cotedivoire.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/cote-d-ivoireKorea, Southhttps://kosis.kr/index/index.doKenyahttps://kenya.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/kenyaKosovohttps://opendatakosovo.org/Lebanonhttps://www.opendatalebanon.org/Lesothohttps://lesotho.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/lesothoLiberiahttps://liberia.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/liberiaLibyahttps://libya.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/libyaMadagascarhttps://madagascar.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/madagascarMalawihttps://malawi.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/malawiMalihttps://mali.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/maliMauritaniahttps://mauritania.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/mauritaniaMauritiushttps://mauritius.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/mauritiusMaldiveshttps://maldives.opendataforafrica.org/African Development Bank GroupMoroccohttps://morocco.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/moroccoMozambiquehttps://mozambique.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/mozambiqueNamibiahttps://nabibia.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/namibiaNepalhttps://opendatanepal.com/Open Knowledge Nepalhttp://data.opennepal.net/Nigerhttps://niger.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/nigerNigeriahttps://nigeria.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/nigeriaPakistanhttps://opendata.com.pk/Lahore University of Management SciencesHigher Education Commissionhttp://centraldedados.pt/Rwandahttps://rwanda.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/rwandaSao Tome and Principehttps://saotome.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/sao-tome-and-principeSenegalhttps://senegal.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/senegalSeychelleshttps://seychelles.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/seychellesSierra Leonehttps://sierraleone.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/sierra-leoneSomaliahttps://somalia.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/somaliaSouth Africahttps://southafrica.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/south-africaSudanhttps://sudan.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/sudanSudan, Southhttps://southsudan.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/south-sudanTanzaniahttps://tanzania.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/tanzaniaTogohttps://togo.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/togoTunisiahttps://tunisia.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/tunisiaTurkeyhttp://acikveri.sahinbey.bel.tr/datasetUgandahttps://uganda.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/ugandahttp://catalog.data.ug/Zambiahttps://zambia.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/zambiaZimbabwehttps://zimbabwe.opendataforafrica.org/African Development Bank Grouphttps://africaopendata.org/group/zimbabwe
Отсутствие единого механизма поиска
ИМХО, ресурс аналогичный GitHub но для данных дал бы сильный толчок в развитии открытым данным.
Да, есть например data.world, но он пока не имеет всей той функциональности которая сделала бы его GitHub’ом для данных. Какими характеристиками должен обладать ресурс:
- Визуализация — возможность визуализировать данные так как хочет автор и пользователи, а не так как это сделает система.
- Стандартизованность — возможность задать структуру данных, отклонение от которой выдаст ошибку и не позволит загрузить данные.
- API и интеграция — богатый API и возможность интеграции с различными источниками данных.
- Социальность — обсуждение, оценка и рецензирование данных сообществом.
- Международность — данные не должны размещаться на серверах в какой-то одной стране, чтобы избежать их блокирования со стороны государства.
Уверен что в скором времени такой ресурс появится и открытые данные займут значимое место в жизни каждого человека.
Невалидность данных
Из статистики по документам data.gov.ru видно что большая часть данных размещены в CSV-формате:
И это огромная проблема. Дело в том что большая часть CSV-файлов имеют невалидный формат. В CSV легко допустить ошибку, а если пользователь не разбирается в стандарте, то вероятность ошибки близка к 100%. И так, какие ошибки встречаются чаще всего:
1 место — лишние кавычки. Это бич всех CSV данных. Неправильная кавычка может сломать весь документ.
Пример: Реестр лицензий на фармацевтическую деятельность Новгородской области первая же строка:
2 место — разное количество колонок в строках данных.
Пример: государственный реестр лекарственных средств
regnumber,regdate,enddate,cancellationdate,nameregcertificate,country,tradename,internationalname,formrelease,stages,barcodes,normativedocumentation,pharmacotherapeuticgroup
П N009886,28.04.2011,,,,”ООО “”Валеант”””,Россия,Бронхинол,,~,,”Производство готовой лекарственной формы,Херкель Б.В., Nobelweg 6, 3899 BN Zeewolde, the Netherlands, Нидерланды
“,,”П N009886-280411,2011,Бронхинол;
“,отхаркивающее средство растительного происхождения
Сопоставляем заголовок и данные, получаем:
80% CSV-файлов приходится править перед использованием. Это не большая проблема для небольших и редко меняющихся наборов данных. Но если набор в сотню тысяч строк и обновляется раз в неделю, то это большая проблема.
Отсюда возникает вопрос, зачем использовать CSV?
Всё, что может пойти не так, идёт не так
Сейчас множество всяких наборов данных в разных областях выкладывают под лицензией OpenData: скачивай и используй (но не искажай). Но раз эти данные открытые, то все их создают как им угодно. Отсюда множество проблем при обработке, начиная с получения и заканчивая интерпретацией. Мы работаем с открытыми данными последние пять лет, и за весь опыт работы накопилось немало интересных случаев. Под катом — основные проблемы и примеры ребусов, путешествий во времени и прочей чертовщины, с которой мы ежедневно боремся.
Скриншот с сайта реестра и соответствующий фрагмент выгрузки в XML
Где-то польза от открытости данных очевидна. Многие научные наборы открыты и приносят пользу обществу, например, вместе с инструментами для поиска и сравнения нуклеотидных и аминокислотных последовательностей BLAST на сайте Национального центра биотехнологической информации США распространяется также ежедневно обновляемая база GenBank, содержащая все аннотированные последовательности ДНК и РНК (сейчас там около 650 ГБ файлов). Или есть проект OpenStreetMap, который не нуждается в рекламе, и на сайте прямо написано, что они тоже Open Data.
Среди всего многообразия открытых данных особое место занимают государственные. Исторически эта тема восходит к американскому закону о свободе информации (FOIF), который вступил в силу более полувека назад — в 1967 году. В 2009 году был запущен портал data.gov, на котором сейчас размещено 312 тысяч наборов данных. Большая часть этих наборов весьма специфична (например, данные о размерах классов в школах Нью-Йорка или фид с ДТП в Остине в реальном времени), но и данных очень много. Кроме того, часто ведомства выкладывают данные и самостоятельно.
Самые популярные датасеты с data.gov
А что у нас? В 2002–2010 действовала программа «Электронная Россия» (в рамках неё открыли данные о гос. закупках), а в 2013 был принят закон об открытых данных (как в США), и в том же году запущен сайт data.gov.ru. На нём на текущий момент 24 тысячи наборов данных (читайте обзор в блоге «Информкультуры»). Если посмотреть на статистику скачивания данных на портале, то там с большим отрывом лидирует производственный календарь с 1995 по 2025 год (при этом данные после 2019 не обновлялись).
Самые популярные наборы данных на data.gov.ru
Есть даже данные из будущего!
Государственные открытые данные — область весьма специфическая. От работы с ними складывается впечатление, что данные выкладываются исключительно, чтобы соответствовать требованиям законодательства и показывать красивые графики о росте открытости. Например, один из подзаконных актов требует, чтобы все ведомства публиковали в виде открытых данных свои вакансии — и все публикуют.
- Вторая группа проблем — сложность с интерпретацией данных. Закон никак не регламентирует полноту документации, поэтому на выходе бывает разное, и часто — ничего полезного (вплоть до того, что даже типы полей указаны неверно). Приходится разбираться самостоятельно.
- Третий тип сложностей связан с очисткой данных от всякого мусора и ошибок. Бывают просто ничего не несущие пустышки (например, XML-ка, в которой нет ни одного элемента и атрибута, даже обязательных по схеме), а бывает «тестовая прокуратура», проводящая, по-видимому, тестовые проверки тестовых компаний.
- И, наконец, четвёртая группа проблем связана с атрибуцией данных — их ведь нужно показывать на страницах того или иного юридического лица или индивидуального предпринимателя. И к какому лицу относятся данные — не всегда легко понять.
За несколько лет работы с открытыми данными встретилось довольно много интересного. В статье я расскажу о нескольких забавных случаях, разъясню проблемы и способы их решения.
Отсутствие API для доступа к данным
Того API который есть у некоторых ресурсов (например data.mos.ru) не достаточно для полноценной работы с данными. Плюс они не достаточно надежы для использования в реальных проектах.
Все это приводит к тому что открытые данные есть, но судя по количеству скачиваний на data.gov.ru ими пользуются единицы.
Чтобы раскрыть весь потенциал открытых данных они должны быть доступны в максимально удобном для использования виде. Чтобы сразу начать ими пользоваться, а не тратить время на приведение их к корректному виду.
У Федеральной службы судебных приставов (ФССП) часть наборов есть аж в виде Linked data. Но это в виде связанных данных ФССП на данный момент опубликовало только три очень полезных набора: «Реестр отделов судебных приставов», «Телефонный справочник работников ФССП России» и «Справочник должностей ФССП России».
А вот реестры ведущихся и прекращённых по определённым причинам исполнительных производств почему-то доступны только в CSV. Каждый день приходится заново выгружать оба реестра целиком: первый занимает 2 ГБ, а второй — 3,5 ГБ. Они никак не сжимаются даже на уровне веб-сервера и раньше качались изнуряюще долго — бывало, по 10 часов и даже дольше. Потом стало немного лучше, но внезапные обрывы соединения никуда не делись.
Страница открытых данных на сайте ФССП. Красиво, правда?
В целом, этот «менеджер закачки» оказался настолько удобным, что сейчас мы его используем для многих наборов открытых данных: он помогает вообще не думать о таких проблемах.
Единый реестр проверок доставлял и другие неприятности с получением данных: часто файлы были просто недоступны, и приходилось пытаться их скачивать несколько раз (вот здесь снова пригождается менеджер закачки). Также реестр проверок предоставляет отдельные наборы данных на каждый месяц и год (хотя по сути это один набор). Нам пришлось разработать специальный механизм, который автоматически находит и записывает новые месяцы и годы.
Чтобы понять данные Росстата, нужно стать Росстатом
Есть, конечно, данные по гос. закупкам — бумажная бюрократия, переведённая в XML, и оттого ещё более формализованная и запутанная. В целом там тоже неплохая документация по форматам (в виде XSD-схем), и чтобы окончательно разобраться, достаточно было несколько проконсультироваться со специалистом по соответствующим областям законодательства. После этого становится ясно, какие документы соответствуют какой части процесса и что со всем этим делать.
Краткая схема процесса гос. закупок
А вот бухгалтерская отчётность, которую за период с 2012 по 2018 год предоставляет Росстат, документирована просто восхитительно. Описание полей в структуре выглядит буквально следующим образом:
field name,english description,russian description,format name,name of ndicator, Наименование показателя,varchar(1000)
okpo,OKPO code,Код ОКПО,varchar(8)
okopf,okopf code,Код ОКОПФ,varchar(5)
okfs,okfs code,Код ОКФС,varchar(2)
okved,okved code,Код ОКВЭД,varchar(8)
inn,individual number of taxpayer,Индивидуальный номер налогоплательщика,varchar(10)
measure,unit code,Код единицы измерения,varchar(3)
type,The report type (0 – socially oriented non-profit organizations; 1 – small enterprises; 2 – full),Тип отчета (0 – социально ориентированные некоммерческие организации; 1 – малые предприятия; 2 – полный) ,varchar(1)
11103,”indicator value
“,значение показателя,varchar(15)
11104,”indicator value
“,значение показателя,varchar(15)
11203,”indicator value
“,значение показателя,varchar(15)
11204,”indicator value
“,значение показателя,varchar(15)
11303,”indicator value
“,значение показателя,varchar(15)
И так две с лишним сотни строк со «значениями показателя», кодами ОКПО, ОКФС, ИНН. Код единицы измерения, как оказалось позже — по справочнику ОКЕИ, и, разумеется, все «значения показателя» оказались исключительно числами, но это так, мелочи. Кстати, по теме справочников: у Росстата есть ОКОК — общероссийский классификатор общероссийских классификаторов.
Но главная сложность с этими данными состояла в том, что совершенно неясно, что именно означают таинственные пятизначные числа, которые не совпадают ни с планом счетов, ни с номерами строк в бухгалтерской отчётности — те четырёхзначные.
Скриншот в Jira, который всех убедил
Расположение цифр слева соответствует расположению пустых полей справа — гипотеза подтвердилась! Присутствующие и отсутствующие коды показателей в выгрузке точно соответствуют бумажной форме. Остальное было делом техники. На этом проблемы с бухгалтерской отчётностью не закончились, но они были уже куда проще.
В целом проблемы с интерпретацией данных решаются, если сопоставить различные источники друг с другом и, как правило, когда накапливается достаточное количество данных, всё становится понятно.
Долги времён Римской империи
Иногда в данных бывают косяки. Зачастую безобидные, когда, например, отгружается проверка по несуществующей организации, или у дисквалифицированного лица указан ИНН, который ничему не соответствует. В таких случаях эти данные просто можно игнорировать и никак не показывать, но ошибки бывают и более существенные. Одна из самых частых проблем — опечатки в датах. Например, исполнительное производство, открытое, судя по дате, ещё в Римской империи — в 0204 году), и помеченное закрытым в 2015 году. Есть производства из будущего, например, от 2189 года (8585/17/50004-ИП, от 22 мая). Довольно много таких курьёзов можно отфильтровать по датам, но, допустим, бывает и такое: сначала появляются сведения о контракте на гос. закупку у какой-нибудь фирмы, а только через несколько дней появляются сведения, что эта фирма вообще зарегистрирована в налоговой.
Долг из будущего
Иногда косяки бывают более хитрые. Например, всё та же незабвенная ФССП в один из дней выгрузила файл, в котором были перепутаны два столбца — номер исполнительного производства и номер исполнительного документа. А поскольку историю состояния по этим делам мы можем считать только сравнивая имеющиеся и новые файлы, то так вышло, что несколько миллионов исполнительных производств были помечены как закрытые. А на следующий день они переоткрылись, поскольку снова появились в файлах. Их приходится исправлять в ручном режиме, просто вычищая из БД все неверные данные.
Установить жёсткие правила, чтобы отфильтровывать ошибочные данные, не удаётся — кроме, пожалуй, случая с явно некорректными датами. Поэтому здесь мы действуем иначе: проверяем данные достаточно расслабленно, но при этом корректируем их по запросам пользователей. Так был разработан специальный механизм, который первоначально решал и проблему атрибуции.
Нейросеть vs. Бюрократия
И здесь я ещё раз вспоминаю о Федеральной службе судебных приставов. Помните, были истории, когда приставы по ошибке предъявляли требования полному тёзке должника? Так вот, с юридическими лицами происходит то же самое. Не вполне понятно, почему именно, но база ФССП (как доступная на сайте, так и, по-видимому, внутренняя), содержит только наименование и адрес организации, и в ней нет никаких реквизитов. При этом адрес может быть не юридический, а фактический, правда, в прошлом году эти поля всё-таки разделили (что, впрочем, не означает, что они не путаются). Можно предположить, что такие ошибки связаны с особенностями юридических процедур, но факт остаётся фактом — должников приходится искать по адресу и наименованию.
Один из наших пользователей по этому поводу написал:
Атрибутировать производства оказалось весьма интересной задачей.
,399782,48 ,ЕЛЕЦ Г,ЧЕРОКМАНОВА УЛ,10,
Здесь 48 означает код региона — Липецкую область. А ещё код региона может внезапно стоять в конце, вместо квартиры:
,ЕЛЕЦ Г,ПРОМЫШЛЕННАЯ УЛ,90,КОРП643,48
Пришлось вручную собрать разнообразные форматы адресов, подготовить на основе реальных адресов компаний тестовые данные и обучить небольшую нейронную сеть — сегментатор адресов. С разобранным адресом дальше уже дело техники: — найти нужную компанию, которая в определенный период была зарегистрирована по конкретному адресу, а эта информация у нас есть из ЕГРЮЛ. 100% точности, понятное дело, с такими исходными данными достичь не удастся, но большую часть должников мы успешно идентифицируем.
Аналогичный механизм пришлось делать и для картотеки арбитражных дел. Там часто бывают указаны реквизиты компаний, но иногда они перепутаны и требуется проверять все возможные соответствия, чтобы убедиться: нужные компании привязаны к нужным сторонам дела.
В целом автоматизировать всё это невозможно, и пользователи регулярно пишут в поддержку, что какое-то дело неверно атрибутировано. Для этих случаев был разработан так называемый механизм перепривязок. Мы, разумеется, не редактируем исходные данные, полученные из источников, но при этом храним таблицу переопределений — что-то вроде вклеенного в книгу списка опечаток. На одном из этапов обработки источника эти переопределения применяются, и в промежуточные представления, из которых отображается информация на сайте, уже попадают скорректированные данные.
Каждая служба публикует данные в произвольном виде.
Например это заголовки колонки из CSV-файла перечня карантинных зон:
“Название карантинного организма”,
“Административный район”,
“Площадь в пределах установленной карантинной фитосанитарной зоны (га)”,
“№ и дата приказа об установлении карантинной фитосанитарной зоны Представление в орган исполнительной власти субъекта РФ (№ и дата письма)”,
“Представление в орган исполнительной власти субъекта РФ (№ и дата письма)”,
“Решение органа исполнительной власти субъекта РФ о наложении карантина (№ и дата)”,
“Территориальное управление”
Геокоординаты могут быть представлены в виде 2 колонок, в одной колонке через запяую или в GeoJSON.
А вот несколько вариантов представления списков:
“№ 223од от 02.09.2010 № 277од от 29.09.2011 № 136од от 14.10.2009 № 556од от 02.10.2013 № 452од от 19.10.2012”
“4 номера: 3 апартамента, 9 люксов, 2 однокомнатных двухместных улучшенных, 4 одноместных, 37 двухместных номеров”
Ко всему прочему данные разбросаны по разным ресурсам:
Как узнать что это официальные сайты? И почему бы не публиковать данные в одном месте?
- “Non-Federal Data – How to Get Your Data on Data.gov”. Retrieved .
- Hansell, Saul (2009-03-05). “The Nation’s New Chief Information Officer Speaks”. The New York Times. Retrieved .
- Aliya Sternstein (1 April 2009). “Kundra’s Ideas Shape Book”. nextgov (Tech Insider). National Journal Group. Archived from the original on 20 February 2017. Retrieved 2011.
- “The Governance Lab”. thegovlab.org. Retrieved .
- “Executive Order — Making Open and Machine Readable the New Default for Government Information”. whitehouse.gov. 2013-05-09. Retrieved .
- “Five Years of Open Data—Making a Difference”. Data.gov. 2014-05-20. Retrieved .
- Orszag, Peter R. (8 December 2009). “Open Government Directive”. Executive Office of the President.
Работать с российскими государственными открытыми данными скучно не бывает. С одной стороны, часто приходится разбираться с какой-нибудь очередной новой предметной областью, где встречаются неожиданные глубины. Например, лицензирование различных сфер деятельности отличается довольно сильно, и нам нужно было свести их в единую структуру, чтобы показывать список лицензий у какой-нибудь компании. С другой стороны, есть и чисто технические вызовы: оптимизировать парсинг больших XML-файлов и сделать так, чтобы все интересующие пользователей данные отдавались быстро.
Всё это требует от разработчиков упорства и изобретательности в борьбе с артефактами цифровизации. Зато каждый раз, когда удаётся понять, что же на самом деле означают эти недокументированные цифры, или когда удаётся найти надёжный способ извлекать из данных нечто полезное, приходит чувство глубокого удовлетворения от очередной маленькой победы человека над бюрократией.