Чек-листы
Короткие списки живут в главах, рядом с объяснением. Здесь они собраны в рабочем виде: их можно распечатать или скопировать в задачу. У каждого пункта ссылка на главу, где написано, зачем он нужен.
Два длинных списка остаются в своих главах, потому что без пояснений их не заполнить:
- Требования к каталогу и сравнение платформ — что писать в задании и что из этого обязательно не всем.
- Самоаудит — как за один проход оценить свой каталог и что записать в итог.
Проверка живого портала
Этот список подходит и для своего каталога, и для чужого, который вы рассматриваете как образец или как источник для сбора. На него уходит около получаса.
Находимость и выгрузка
- На странице набора есть блок
application/ld+jsonс типом Dataset — экспорт метаданных. - Выгрузка заявляет профиль, который ждёт сборщик (DCAT-AP 3.0.1, DCAT-US 3.0), а не просто открывается по адресу
data.json. - Отвечает карта сайта
sitemap.xml— API и массовая выгрузка. - Есть файл со всеми описаниями (
data.json,catalog.rdf,catalog.ttl), и он открывается без входа. - Число наборов в выгрузке совпадает с числом в поиске на сайте.
- Выгрузка проходит валидатор нужного профиля: DCAT-AP, INSPIRE или DataCite — метрики качества.
- Для геопортала отвечает CSW или OGC API Records, для научного репозитория — OAI-PMH.
- Постраничная выгрузка доходит до последней страницы, а поиск через API отдаёт следующую страницу — API и массовая выгрузка.
- Есть выборка «изменено после даты» или лента изменений, и за последние дни в ней что-то находится.
- Описания и API отвечают из командной строки, без входа, ключа и проверки от роботов, лучше из другой сети.
- Для больших баз есть массовая выгрузка файлами с датой и размером, а не только API с лимитами.
- Лимиты, условия использования и документация API опубликованы; у API есть контакт.
Описания
- У десяти случайных наборов, не самых свежих, заполнены лицензия, издатель, дата обновления, период и территория — полнота метаданных.
- Самое частое значение периода, территории и частоты обновления — не заглушка вроде «1900–2099» или «вся страна» у наборов разных организаций — проверка на выборке.
- Описание не повторяет название и длиннее 50 символов: короче не примет разметка для Google.
- Лицензию ищут там, где её хранит схема: в DCAT-AP — у файлов, а не у набора.
- Тема, лицензия, язык и территория взяты из общего справочника, а не свободным текстом — стандарты метаданных.
- У табличных наборов есть словарь полей, и типы колонок совпадают с содержимым.
- Свои поля и плагины схем (ckanext-scheming, ckanext-validation, профили GeoNetwork) проверены по репозиторию и ветке под текущую версию ядра.
Содержимое
- Большинство наборов — не справки на одну-две строки, а общий объём данных сопоставим с главными источниками темы — проверка по существу.
- «Обновлённые» наборы действительно изменились: в файле новые периоды, а не только новая дата в карточке.
- У CSV указаны или однозначны кодировка и разделитель — антипаттерны.
Файлы и адреса
- Ссылки «Скачать» открываются. Посчитайте долю внешних ссылок, которые отвечают ошибкой, и сведите ошибки по доменам — внутреннее хранилище.
- По ссылке с форматом CSV, XLSX или PDF открывается файл, а не веб-страница или главная страница сайта.
- Внешние ссылки проверяются по расписанию, а у ресурса видны дата и итог последней проверки.
- Предел размера загрузки поднят до реального: в CKAN по умолчанию 10 МиБ.
- Опубликованный файл, на который ссылаются, не перезаписывается: исправление — новая версия; у файла есть контрольная сумма.
- Пользователю дают постоянный адрес файла на портале, а не временную ссылку облачного хранилища.
- Адрес страницы набора не меняется при правке описания и названия — идентификаторы.
- Если обещан DOI,
https://doi.org/…ведёт на страницу набора, а не на главную, тестовый стенд илиlocalhost. - Если на странице Handle, он разрешается через
hdl.handle.net, а префикс не заглушка123456789из поставки DSpace. - Снятый набор с DOI заменён страницей-надгробием, а не страницей «не найдено».
- Если портал переезжал, старые адреса перенаправляют, а не отвечают «не найдено».
Цитирование и доступ
- Есть блок «Как цитировать», скачивается BibTeX или RIS с тем же идентификатором — экспорт цитирования.
- В ссылке год публикации набора, а не год создания карточки; есть версия или, у обновляемых наборов, дата обращения.
- Если у набора есть DOI, ссылка от DataCite совпадает со ссылкой на странице по автору, году и версии.
- У набора видна организация и контакт — доступ, роли и процессы.
- Описания закрытых наборов видны без входа, скачивание — нет.
Поиск, языки, сбор и обратная связь
- Слово из середины описания находится поиском, а при сотнях наборов есть фильтр по организации и формату — другие возможности.
- После смены языка то же слово на этом языке находит набор, и перевод описания совпадает с текстом на языке оригинала.
- У табличного файла на странице есть таблица или прямая ссылка. У закрытого файла содержимое не видно тому, кому файл закрыт.
- У собранного набора есть ссылка на оригинал, а у источника сбора — дата последнего успешного прохода и число наборов.
- Счётчик видит тот способ доступа, которым данными пользуются: страницу, файл или API.
- Сообщение об ошибке доходит до владельца данных. Назван человек и срок ответа.
Сетевую часть можно проверить одним скриптом. Подставьте адрес портала:
PORTAL=https://portal.example
for path in sitemap.xml data.json catalog.rdf catalog.ttl \
"api/3/action/package_search?rows=1" \
"oai?verb=Identify" \
"csw?service=CSW&request=GetCapabilities"; do
code=$(curl -s -o /dev/null -w "%{http_code}" -L --max-time 20 "$PORTAL/$path")
echo "$code $path"
done
Ответ 200 по адресу, который подходит к типу каталога, — хороший знак. Ответ 401, 403 или страница входа значит, что машинного доступа нет, даже если он обещан. Адреса для CKAN, OAI-PMH и CSW подходят не всем платформам: отсутствие ответа по чужому типу — не ошибка.
Каталог показателей
Подробно — в главе о каталогах показателей.
- Территории, отрасли и другие разрезы закодированы общими справочниками, справочники скачиваются.
- Всю базу можно забрать целиком: архивом или файлом на показатель плюс перечень файлов.
- Выгрузка из конструктора отдаёт весь ряд, а не только срез, показанный по умолчанию.
- Есть API, у каждого показателя — постоянный адрес запроса.
- Кроме Excel есть CSV и SDMX или JSON-stat.
- Методика и единица измерения лежат рядом с рядом, а не только в PDF.
- API описан по OpenAPI или хотя бы веб-страницей с примерами запросов.
Каталог метаданных
Подробно — в главе о каталогах метаданных.
- У каждого понятия, кода и описания постоянный адрес, который не меняется при переезде сайта.
- Устаревшая запись помечена, и видно, чем её заменили; молча записи не удаляются.
- Адрес записи отдаёт программе SKOS, SDMX или DCAT, а не только страницу.
- Весь словарь или перечень скачивается одним файлом.
- У каждой записи назван хранитель, у каталога записаны правила включения.
- Каталог зарегистрирован уровнем выше: в BARTOC, re3data, FAIRsharing, индексе FAIR Data Point или национальной единой точке.
- Программам не отвечает проверка от роботов вместо данных.
Каталог микроданных
Подробно — в главе о каталогах микроданных.
- Описание исследования видно без входа: выборка, единица наблюдения, период, территория.
- У переменных есть текст вопроса, значения с подписями и частоты.
- У каждого файла указан тип доступа; условия, что нужно для заявки и срок ответа написаны до заявки.
- Описания выгружаются в DDI, есть API или OAI-PMH, и они отвечают программе без проверки «я не робот».
- У исследования есть DOI или постоянный адрес и готовая ссылка для цитирования.
- Открытые файлы лежат и в CSV или Parquet, а не только в форматах SPSS и Stata.
- Каталог стоит на домене владельца с HTTPS, а не на IP-адресе или поддомене подрядчика; сопровождение заложено в бюджет.
Перед установкой расширения
Подробно — в главе об экосистемах расширений.
- Понятно, кто выпускает расширение и отвечает на ошибки. Один человек без ответа два года и без тестов — повод искать другой модуль.
- Ваша версия ядра названа в автоматических тестах, таблице совместимости или имени ветки. Свежий выпуск при старых тестах не считается. «Работало у соседей» не считается.
- Если копий несколько, в карточке решения записан адрес той, которую ставите.
- Команда установки указывает на этот репозиторий и на ветку, которая в нём есть.
- Есть файл лицензии, и она разрешает то, что вам нужно.
- Для внешней программы записано, как она получает файл: короткая подписанная ссылка или долгоживущий ключ.
- В карточке решения записано, что делать, если расширение перестанут поддерживать — как обосновать решение.
Перед покупкой или установкой платформы
Подробно — в главах о развёртывании и сопровождении и о цене ухода.
- Есть официальный контейнер и короткая инструкция обновления.
- Известно, сколько последних версий поддерживается и как часто они выходят.
- Посчитано, сколько расширений нужно для обязательных функций и кто их выпускает.
- Названо, кто будет дежурить через два года: своя ставка, подрядчик или поставщик сервиса.
- Проверено, что все описания и файлы можно выгрузить целиком, — иначе уйти с платформы будет дорого.
- Пилот прошёл на десяти настоящих наборах, а не на демонстрационных.
Перед тем как назвать набор опубликованным
Подробно — в главе о процессе публикации.
- У набора постоянный адрес.
- Лицензия на карточке, у файла и в выгрузке — одна и та же ссылка или известный код. «Не указана», код без текста и фраза в подвале не считаются — лицензии.
- Файл или сервис открывается, или честно сказано, почему он недоступен и как его запросить.
- Указаны дата обновления и периодичность.
- Описание попало в общую выгрузку и видно верхнему порталу.
- Черновик не попал в поиск до публикации.
- Назван человек или команда, которые ответят на ошибку в строках. Ящик
info@без имени этого не закрывает. - В перечне или очереди записано, почему этот набор публикуют сейчас.
Пока набор остаётся опубликованным
Подробно — в главе о процессе публикации.
- Дата файла не старше обещанной частоты. Пустая частота значит, что обновление для этого набора не задано.
- Снятый набор помечен: прежний адрес открывается и объясняет, почему выпуска больше нет или чем его заменили.
- Просьба о недостающем наборе попадает в очередь, а не остаётся только письмом.
- Перечень данных существует как документ — таблица или файл описаний, — а не только как память редактора.
Перед выключением каталога
Подробно — в главах о жизненном цикле и об архивации.
- О закрытии объявлено заранее, за месяцы, а не за дни; на переходный срок каталог работает только на чтение.
- Данные переданы в другой каталог или архив, либо явно сказано, что они сняты с публикации.
- Старые адреса либо перенаправляют, либо хотя бы год отвечают, куда переехал набор.
- Снимок описаний сохранён: выгрузка через API или файл DCAT, а не только страницы сайта.
- Файлы, которые лежат только в этом каталоге, сохранены вместе с адресами, откуда они взяты.
- Проверено, что сайт есть в Интернет-архиве или национальном веб-архиве и что архив до него доходит, в том числе из-за рубежа.
- Верхний портал и реестры, где каталог был зарегистрирован, уведомлены.
Перед тем как заводить свой портал
Подробно — в главе «Когда портал не нужен».
- Назван адресат: кто забирает описания и в каком профиле.
- Посчитаны наборы, организации-публикаторы и частота обновления.
- Назван человек, который будет обновлять публикацию через три года, и отдельно — кто обновляет сервер, если портал всё-таки ставят.
- Проверен чужой каталог, который уже принимает эти наборы: региональный, национальный, университетский, Zenodo.
- Если остаётся свой сайт или репозиторий, у каждого набора есть лицензия, дата и прямая ссылка на файл.
- Записано событие, при котором отказ от портала открывают заново.
Перед входом для программ и пространством данных
Подробно — в главе об ИИ и пространствах данных.
- Выгрузка описаний, лицензия и прямая ссылка на файл уже работают.
- Сервер MCP или файл
llms.txtзаводят, когда программами уже пользуются и есть кому его сопровождать. - Поиск фразой стоит рядом с обычным поиском и возвращает карточки наборов.
- Чат ссылается на набор. Карточка, файл и лицензия остаются.
- Пространство данных заводят, когда данными обмениваются несколько организаций и права у них разные.
Перед тем как чинить качество
Подробно — в главе об уровнях качества.
- В задаче назван уровень: данные, описания, каталог как сервис или система каталогов.
- Исполнитель — тот, кто этот уровень держит: владелец данных, редактор, администратор платформы или координатор страны.
- Очередь начинается с файлов, которые открываются и читаются. Выгрузка обгоняет её, когда сверху названа дата сбора.
- Чужой балл разложен по уровню: балл карточки и MQA — описания, индекс страны — система, число наборов — счётчик карточек.
Минимум публикации без портала
Подробно — в главе о том, как сделать публикацию находимой.
- Одна страница с постоянным адресом. Путь не меняется, когда правят название.
- Описание в разметке — от 50 до 5000 знаков, тот же смысл, что в тексте страницы.
- Лицензия — ссылка на конкретную версию, одна и та же на странице, в файле и в записи DOI.
- В HTML есть schema.org/Dataset и прямая ссылка на файл. Пустого DOI в разметке нет.
- Страница открывается без входа. Если страниц несколько, есть карта сайта.
robots.txtлежит в корне имени сайта. - Файл в профиле сборщика — только если сборщик есть, и обязательные поля этого профиля заполнены.
- У таблицы есть
datapackage.json. Дата обновления и контакт написаны на странице. - DOI — если на набор ссылаются. В
sameAsстоит другая страница того же набора.
Готовые заготовки файлов — README, datapackage.json, CITATION.cff и разметка schema.org — лежат в шаблонах.
Статический каталог
Подробно — в главе о статических сайтах.
- Страница каждого набора собрана в HTML. Текст описания есть в файле страницы, а не подгружается только скриптом.
- Адрес страницы не меняется, когда правят название. Переименование файла адрес меняет.
- В HTML есть schema.org/Dataset. Разметка DCAT в атрибутах страницы её не заменяет.
- Файл всех описаний открывается без входа. В записи есть издатель, лицензия, дата изменения и прямая ссылка. Строка
conformsToсверена с полями. - В поле лицензии стоит известная лицензия. Значение
No licenceне считается. - Карта сайта
sitemap.xmlоткрывается. - Если включена форма редактора, правка видна как коммит. Отдельный сервер входа, если хостинг его требует, записан в карточке решения.
- Размер сайта и время сборки укладываются в предел хостинга.
Репозиторий с данными
Подробно — в главе о Git-репозиториях.
- Один набор — один пакет. Описатель называется
datapackage.jsonи лежит в корне пакета. - В
LICENSE— лицензия на данные. Если рядом скрипт, лицензия кода названа отдельно. - В
CITATION.cffестьtype: dataset. Пустого DOI в файле нет. - Файл меньше предела площадки. Большой файл — во вложении выпуска или вне Git, в репозитории остаётся адрес.
- Выпуск, на который ссылаются, зафиксирован меткой. На GitHub связка с Zenodo включена до этого выпуска, у записи тип «набор данных», лицензия совпадает с
LICENSE.
Файлы в облаке или на общем хабе
Подробно — в главе об облачных хранилищах и хабах.
- Рядом с файлами лежат
README.md, лицензия и контрольные суммы. Лицензия на странице, в карточке и в файле одна и та же. - Адрес файла постоянный. Это не временная ссылка и не бакет с оплатой трафика читателем.
- Файл скачивается без входа. Проверено запросом без ключа облака и в браузере, где вы не вошли на площадку.
- У выпуска, на который ссылаются, есть DOI или копия вне площадки.
- До загрузки проверено, что свои наборы можно забрать целиком. Если место оплачивает программа спонсорства, в карточке решения записан день, когда срок кончится.