Самоаудит каталога
Самоаудит — один проход по каталогу, после которого ясно, что чинить в ближайший месяц. Итог умещается на страницу: когда смотрели и по какому списку, несколько долей, пять карточек с типичными ошибками и две очереди. Одна — редактору карточек, вторая — тому, кто отвечает за платформу.
Рейтинг страны и сертификат архива отвечают на другие вопросы. Их место разобрано в главах об уровнях качества и о методиках. Здесь — порядок для своего портала и для чужого, на который собираетесь опираться.
Полный проход делают раз в полгода и в день смены платформы или адреса: старые ссылки ломаются сразу. Раз в месяц достаточно открыть десяток известных ссылок. Квартальные и годовые проверки платформы — в главе о жизненном цикле. Смотрят двое. Строки и карточки — тот, кто отвечает за данные. Выгрузку, адреса и версию — тот, кто отвечает за платформу.
Два масштаба
Выборка из 30 наборов ловит типичную ошибку карточки: нет лицензии, период-заглушка, файл не открывается. Долю коротких файлов, общий объём и год публикации считают по выгрузке файлов, лучше по всем. Ниже два портала, где паспорта выглядели живыми, а подсчёт файлов показал справки.
| Масштаб | Что отвечает | Когда |
|---|---|---|
| 30 карточек разных издателей | типичная ошибка описания и битая ссылка | каждый полный проход |
| Все файлы или каждый N-й, несколько сотен | распределение по размеру, общий объём, год файла, пропуски по главным публикаторам | когда счётчик наборов стал главным числом отчёта, при приёмке портала и после резкого роста этого счётчика |
Долю из тридцати записывают как долю выборки: «в 30 наборах лицензии нет у 20». Если одна и та же дыра в большинстве тридцати, чинят правило заполнения, а не эти тридцать карточек.
Как взять тридцать
Берут из общей выгрузки, не с первой страницы сайта и не из блока «недавно обновлено». Выдача начинается с того, что редакция только что поправила. Удобный способ — упорядочить записи по идентификатору и взять каждый N-й, где N — число наборов, делённое на 30. У каталога из 6000 записей это каждый двухсотый.
Издатели должны различаться. Если девять десятых каталога — одно ведомство, тридцать карточек расскажут про него. Тогда к каждому N-му добавляют несколько наборов из длинного хвоста и так и пишут в поле «охват».
Выгрузки нет — те же тридцать набирают, листая общий список на сайте. В итог первой строкой ставят «общей выгрузки нет». Остальные метрики без неё всё равно считают, но каталог для федерации уже не годится.
Чем считать лицензию, дату, период и открытый формат и какими валидаторами прогонять профиль — в главе о метриках. Ошибки профиля (DCAT-AP, INSPIRE, DataCite) держат отдельным списком от пустых полей: валидатор проверяет, что поле есть, и молчит, если в соседних карточках один и тот же текст.
Шаги
- Найдите каталог в профильном реестре, если он там есть, и проверьте адрес и тип. Ошибочная карточка путает тех, кто ищет портал. Число наборов на сайте и число в выгрузке или API записывают оба: они часто расходятся.
- Откройте выгрузку всех описаний и страницу одного набора без входа. Регистрация, капча или проверка «я не робот» означают, что машинного доступа нет. Команды для карты сайта,
data.json, API, OAI-PMH и CSW — в чек-листе живого портала. - Возьмите 30 наборов, как выше, и посчитайте по ним лицензию, дату, период и то, открывается ли файл. Сверьте дату в карточке с датой внутри файла. Поле вроде
metadata_modifiedу CKAN — дата правки карточки. - Прогоните выгрузку через валидатор своего профиля. Список инструментов — в главе о метриках.
- Если решаете вопрос объёма, посчитайте файлы, как в следующем разделе.
- Выпишите пять–десять главных публикаторов темы или страны и отметьте, есть ли их данные. Пустая клетка напротив статистической службы или казначейства важнее сотни мелких наборов.
- Сверьте результат с чек-листом требований. Пункт, который вы сами пометили обязательным и не выполнили, идёт в начало очереди.
- Отложите пять карточек разных издателей со ссылками. Пять ошибок одного ведомства говорят о нём, а не о каталоге.
Чужой каталог проходят так же. Очередь тогда короче: брать его, идти в первоисточник или отложить. До выгрузки файлов имеет смысл пройти признаки жизни: мёртвый портал целиком не качают.
Проверка по существу
Четыре вопроса одни и те же у любого каталога. Меняется единица, которую считают.
| Тип | Что считать | Куда смотреть команды |
|---|---|---|
| Таблицы, портал открытых данных | строки, сжатый объём, год файла | этот раздел |
| Каталог показателей | длина ряда и есть ли выгрузка всей базы | каталоги показателей |
| Геопортал | слой отдаёт объекты, а не только карточку | геопорталы |
| Научный репозиторий | за страницей записи есть файл | научные репозитории |
| Микроданные | у исследования заполнены переменные и условия доступа | микроданные |
| ML-каталог | файл открывается без входа, лицензия на обучение названа | ML-каталоги |
Для таблиц вопросы такие.
- Размер. Разложите файлы по числу строк данных: пусто или одна строка, до 100, от 100 до 10 000, больше. Если большинство в первой группе, каталог состоит из коротких справок или один ряд разрезан на куски. Где проходит граница, — в антипаттерне «Дробление ради счётчика».
- Объём. Сложите размер файлов и подпишите, сжаты они или нет. Сравнивают одинаковое с одинаковым и с одним известным источником той же темы: статистической базой, реестром ведомства, городским порталом. Каталог страны, который меньше одной её информационной системы, тему не покрывает.
- Возраст. Год берут из файла или из поля первой публикации набора, а не из даты правки карточки. Новый портал, в котором почти всё впервые опубликовано много лет назад, перенёс старое.
- Охват. Таблица публикаторов из шага 6. Её заполняют по именам организаций в выгрузке, а не по памяти.
Для папки с CSV первый подсчёт делается так. wc считает и строку заголовка, поэтому файл из одной строки данных даёт 2. Порог «не больше 2» как раз ловит пустые и однострочные файлы. На порогах 100 и 10 000 одна строка заголовка группу не меняет.
for f in data/*.csv; do wc -l < "$f"; done \
| awk '{ n = $1
if (n <= 2) a++
else if (n <= 100) b++
else if (n <= 10000) c++
else d++ }
END { print "пусто или 1 строка:", a+0,
" до 100:", b+0,
" до 10 000:", c+0,
" больше:", d+0 }'
+0 нужен, чтобы пустая группа напечаталась нулём. Файл с расширением CSV, который открывается как страница сайта, в этот подсчёт не берут: это битая ссылка. Общий размер папки, как она лежит на диске:
du -ch data | tail -n 1
Если публикуете ZIP или gzip, в итог пишите размер архива, а не распакованной папки. Для XLSX и JSON строку считают программой, которой файл открывают. Пороги те же.
data.gov.uz, февраль 2023 и июль 2025
В феврале 2023 года на data.gov.uz было 6623 набора — больше, чем на большинстве порталов региона. Форматы машиночитаемые, у полей есть описания, раздел мониторинга помечал обновлёнными 6120 наборов. Выгрузка в CSV дала другое: 2823 набора (42,6%) состоят из одной строки, 6381 (96%) короче 200 строк, весь CSV занимает 40 МБ. Самый большой файл — 60 984 строки и 4,4 МБ в CSV. Набор «Получено яиц, всего по Хорезмской области» — одна цифра за 2020 год, в мониторинге он числился обновлённым 26 декабря 2022 года.
Рядом, в те же недели, у data.gov.kg было 646 наборов и около 570 МБ файлов, в основном Excel. Наборов меньше на порядок, объём больше. Форматы разные, поэтому это сравнение порядка, а не точных байтов.
В июле 2025 года повторный подсчёт, в заметке адрес указан как data.egov.uz: наборов 10 412, из одной строки — 5207, половина, больше 1000 записей — у 114, чуть более 1%. Выгрузка в JSON без сжатия — 426 МБ; для 2023 года в той же заметке названы 284 МБ JSON. Рядом с 40 МБ CSV эту цифру не ставят: формат другой. Число наборов выросло, правило нарезки осталось.
data.gov.ru, июль 2025
15 июля 2025 года портал открыли снова. Предыдущую версию закрыли в 2023 году «для переноса на новую платформу». Через API было 5826 наборов, на страницах сайта — меньше. Сжатый ZIP — около 100 МБ, без сжатия — около 1 ГБ. Из этих 5826 наборов 4694 (80%) короче 100 строк, 586 (10%) — от 100 до 500, 350 (6%) — от 500 до 10 000, 62 (около 1%) — от 10 000 строк. Около 3% скачать не удалось. По полю первой публикации 84% наборов относятся к 2019 году или раньше. Отметка «обновлён в 2025 году» саму строку в файле не меняет: в заметке такие наборы ещё предлагалось открывать руками.
Снимок 2 февраля 2022 года — 26 490 наборов и 29 ГБ, в основном без сжатия. Готовый архив того снимка — 14 ГБ; в разборе 2025 года его округлили как «больше 24 тысяч наборов». На новый портал он не вернулся. Для масштаба, из того же разбора июля 2025 года: выгрузка ЕМИСС — 6905 показателей и 4,36 ГБ сжатого CSV; снимок data.mos.ru в ноябре 2022 года — 988 наборов и 3 ГБ в сжатом виде. Данных Росстата и финансовых ведомств на новом портале не нашлось.
Оба разбора считали все файлы. Выборка описаний на таком портале этот провал не показывает.
Что писать в итоге
Одна страница. Её можно отдать редактору без пересказа. Поле, которое не смотрели, заполняют словами «не считали», а не прочерком: прочерк потом читают как «всё в порядке».
| Поле | Что записать |
|---|---|
| Дата и охват | когда смотрели; все наборы или выборка, из какого списка, сжаты ли файлы |
| Лицензия | доля выборки, где лицензия есть ссылкой |
| Живая ссылка | доля выборки, где файл открылся |
| Общая выгрузка | есть или нет; открывается ли без входа; совпало ли число с сайтом |
| Содержимое | доля пустых и однострочных, общий объём с пометкой «сжато» или «как лежит» |
| Пять карточек | типичные ошибки со ссылками |
| Очередь на месяц | что правит редактор карточек и владельцы данных |
| Очередь на платформу | что требует смены расширения, выгрузки или адреса |
Так выглядит заполненная страница по проходу февраля 2023 года. Лицензию и долю битых ссылок в том разборе не считали — в таблице это видно.
| Поле | data.gov.uz, февраль 2023 |
|---|---|
| Дата и охват | февраль 2023, все 6623 набора, CSV без сжатия |
| Лицензия | не считали |
| Живая ссылка | каталог скачали целиком; долю ошибок по ссылкам не считали |
| Общая выгрузка | была, раз файлы удалось забрать |
| Содержимое | 42,6% — одна строка; 96% — меньше 200 строк; 40 МБ CSV |
| Пять карточек | «Получено яиц…» по Хорезмской области: одна цифра за 2020 год, в мониторинге обновлён 26 декабря 2022 |
| Очередь на месяц | перестать резать показатель по области; мониторинг должен смотреть на строки файла |
| Очередь на платформу | файл с именем RDF — тот же XML, без словаря |
Находка «платформа не умеет то, что помечено обязательным» уходит в карточку решения. Следующий проход проверяет проваленные строки: ушла ли однострочность, открывается ли выгрузка.
Где проход обманывает
- Свой мониторинг. Раздел «обновлено» на data.gov.uz ставил дату карточке, в которой одна старая цифра. Свежесть проверяют по файлу.
- Первая страница и «недавно обновлено». Там лежат наборы, которые только что трогали.
- Дата карточки. Правка описания обновляет
metadata_modifiedи не обновляет строки. - Число наборов в итоге. Его поднимают нарезкой. Рядом нужны доля коротких файлов и объём.
- Сжатое рядом с несжатым. 29 ГБ выгрузки data.gov.ru и 14 ГБ архива того же снимка — один каталог. 40 МБ CSV и 284 МБ JSON — тоже.
- Пять карточек одного издателя. Это диагноз издателя.
- Зелёный валидатор. Профиль пройден, файл при этом пустой. Содержимое смотрят отдельно.
- Доля без слова «выборка». Тридцать карточек — не перепись каталога из десятков тысяч записей.
Если каталог читают агенты
Если у каталога включён сервер MCP или на него опираются ИИ-агенты, к проходу добавляют ещё один шаг. Его взяли из пилотов Open Knowledge Foundation 2026 года: частые вопросы пользователей становятся тестами.
- Выпишите десять вопросов, которые чаще всего приходят на почту или в поддержку. Например: «сколько школ в районе», «где расходы бюджета за прошлый год».
- Для каждого запишите правильный ответ, набор и ссылку на карточку. Число берите из файла, а не из памяти.
- Задайте те же вопросы агенту, подключённому к серверу каталога.
- Отметьте три исхода: верное число со ссылкой на набор, верное число без ссылки, неверное или выдуманное.
Неверный ответ чаще всего говорит о пустом описании, а не о модели. В пилоте OKFN модель приписала энергобалансу Уругвая «климатические факторы», которых в наборе нет. Помогли определения полей, единицы, период и известные ограничения в описании. В итог прохода добавляют строку «Ответы агента: верных со ссылкой N из 10». Тест повторяют после каждого обновления сервера и после крупной правки данных. Устройство сервера — в главе об ИИ.
Если портала нет
Страницу, Git-репозиторий и набор в общем хабе проверяют по минимуму публикации без портала: страница открывается без входа, лицензия на месте, разметка schema.org проходит проверку, описание в ней не короче 50 знаков, дата и контакт заполнены. Сверять адрес с реестром каталогов и прогонять валидатор профиля там нечего. Если набор должен попасть в региональный или национальный портал, к минимуму добавляется файл в том профиле, который портал забирает.
Страница итога та же. В полях, для которых нет каталога, пишут «портала нет». Очередь — непройденные пункты минимума.
Источники
- Метрики качества, уровни качества, методики и рейтинги
- Чек-лист требований, чек-лист живого портала
- Антипаттерны, жизненный цикл
- Open Knowledge Foundation, MCP for Open Data Portals: Trust Depends on Understanding the Data, 10 июня 2026 года — частые вопросы партнёров как тесты, «климатические факторы» в ответе об энергобалансе Уругвая
- И. Бегтин, Что не так с порталом открытых данных Узбекистана?, 13 февраля 2023 — 6623 набора, 42,6% из одной строки, 40 МБ CSV, мониторинг
- И. Бегтин, портал открытых данных Кыргызстана, Telegram, 11 февраля 2023 — 646 наборов, около 570 МБ
- И. Бегтин, повторный подсчёт data.egov.uz, Telegram, 10 июля 2025 — 10 412 наборов, 5207 однострочных, JSON без сжатия 426 МБ против 284 МБ в 2023 году
- И. Бегтин, полная выгрузка data.gov.ru, Telegram, 2 февраля 2022 — 26 490 наборов, 29 ГБ без сжатия
- И. Бегтин, Обновлённый портал data.gov.ru, 16 июля 2025 — 5826 наборов, около 100 МБ в ZIP, возраст по первой публикации, архив 2022 года 14 ГБ, ЕМИСС и data.mos.ru