Перейти к основному содержимому

Самоаудит каталога

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

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

Полный проход делают раз в полгода и в день смены платформы или адреса: старые ссылки ломаются сразу. Раз в месяц достаточно открыть десяток известных ссылок. Квартальные и годовые проверки платформы — в главе о жизненном цикле. Смотрят двое. Строки и карточки — тот, кто отвечает за данные. Выгрузку, адреса и версию — тот, кто отвечает за платформу.

Два масштаба​

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

МасштабЧто отвечаетКогда
30 карточек разных издателейтипичная ошибка описания и битая ссылкакаждый полный проход
Все файлы или каждый N-й, несколько сотенраспределение по размеру, общий объём, год файла, пропуски по главным публикаторамкогда счётчик наборов стал главным числом отчёта, при приёмке портала и после резкого роста этого счётчика

Долю из тридцати записывают как долю выборки: «в 30 наборах лицензии нет у 20». Если одна и та же дыра в большинстве тридцати, чинят правило заполнения, а не эти тридцать карточек.

Как взять тридцать​

Берут из общей выгрузки, не с первой страницы сайта и не из блока «недавно обновлено». Выдача начинается с того, что редакция только что поправила. Удобный способ — упорядочить записи по идентификатору и взять каждый N-й, где N — число наборов, делённое на 30. У каталога из 6000 записей это каждый двухсотый.

Издатели должны различаться. Если девять десятых каталога — одно ведомство, тридцать карточек расскажут про него. Тогда к каждому N-му добавляют несколько наборов из длинного хвоста и так и пишут в поле «охват».

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

Чем считать лицензию, дату, период и открытый формат и какими валидаторами прогонять профиль — в главе о метриках. Ошибки профиля (DCAT-AP, INSPIRE, DataCite) держат отдельным списком от пустых полей: валидатор проверяет, что поле есть, и молчит, если в соседних карточках один и тот же текст.

Шаги​

  1. Найдите каталог в профильном реестре, если он там есть, и проверьте адрес и тип. Ошибочная карточка путает тех, кто ищет портал. Число наборов на сайте и число в выгрузке или API записывают оба: они часто расходятся.
  2. Откройте выгрузку всех описаний и страницу одного набора без входа. Регистрация, капча или проверка «я не робот» означают, что машинного доступа нет. Команды для карты сайта, data.json, API, OAI-PMH и CSW — в чек-листе живого портала.
  3. Возьмите 30 наборов, как выше, и посчитайте по ним лицензию, дату, период и то, открывается ли файл. Сверьте дату в карточке с датой внутри файла. Поле вроде metadata_modified у CKAN — дата правки карточки.
  4. Прогоните выгрузку через валидатор своего профиля. Список инструментов — в главе о метриках.
  5. Если решаете вопрос объёма, посчитайте файлы, как в следующем разделе.
  6. Выпишите пять–десять главных публикаторов темы или страны и отметьте, есть ли их данные. Пустая клетка напротив статистической службы или казначейства важнее сотни мелких наборов.
  7. Сверьте результат с чек-листом требований. Пункт, который вы сами пометили обязательным и не выполнили, идёт в начало очереди.
  8. Отложите пять карточек разных издателей со ссылками. Пять ошибок одного ведомства говорят о нём, а не о каталоге.

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

Проверка по существу​

Четыре вопроса одни и те же у любого каталога. Меняется единица, которую считают.

ТипЧто считатьКуда смотреть команды
Таблицы, портал открытых данныхстроки, сжатый объём, год файлаэтот раздел
Каталог показателейдлина ряда и есть ли выгрузка всей базыкаталоги показателей
Геопорталслой отдаёт объекты, а не только карточкугеопорталы
Научный репозиторийза страницей записи есть файлнаучные репозитории
Микроданныеу исследования заполнены переменные и условия доступамикроданные
ML-каталогфайл открывается без входа, лицензия на обучение названаML-каталоги

Для таблиц вопросы такие.

  1. Размер. Разложите файлы по числу строк данных: пусто или одна строка, до 100, от 100 до 10 000, больше. Если большинство в первой группе, каталог состоит из коротких справок или один ряд разрезан на куски. Где проходит граница, — в антипаттерне «Дробление ради счётчика».
  2. Объём. Сложите размер файлов и подпишите, сжаты они или нет. Сравнивают одинаковое с одинаковым и с одним известным источником той же темы: статистической базой, реестром ведомства, городским порталом. Каталог страны, который меньше одной её информационной системы, тему не покрывает.
  3. Возраст. Год берут из файла или из поля первой публикации набора, а не из даты правки карточки. Новый портал, в котором почти всё впервые опубликовано много лет назад, перенёс старое.
  4. Охват. Таблица публикаторов из шага 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 года: частые вопросы пользователей становятся тестами.

  1. Выпишите десять вопросов, которые чаще всего приходят на почту или в поддержку. Например: «сколько школ в районе», «где расходы бюджета за прошлый год».
  2. Для каждого запишите правильный ответ, набор и ссылку на карточку. Число берите из файла, а не из памяти.
  3. Задайте те же вопросы агенту, подключённому к серверу каталога.
  4. Отметьте три исхода: верное число со ссылкой на набор, верное число без ссылки, неверное или выдуманное.

Неверный ответ чаще всего говорит о пустом описании, а не о модели. В пилоте OKFN модель приписала энергобалансу Уругвая «климатические факторы», которых в наборе нет. Помогли определения полей, единицы, период и известные ограничения в описании. В итог прохода добавляют строку «Ответы агента: верных со ссылкой N из 10». Тест повторяют после каждого обновления сервера и после крупной правки данных. Устройство сервера — в главе об ИИ.

Если портала нет​

Страницу, Git-репозиторий и набор в общем хабе проверяют по минимуму публикации без портала: страница открывается без входа, лицензия на месте, разметка schema.org проходит проверку, описание в ней не короче 50 знаков, дата и контакт заполнены. Сверять адрес с реестром каталогов и прогонять валидатор профиля там нечего. Если набор должен попасть в региональный или национальный портал, к минимуму добавляется файл в том профиле, который портал забирает.

Страница итога та же. В полях, для которых нет каталога, пишут «портала нет». Очередь — непройденные пункты минимума.

Источники​