Ivan Begtin
8.01K subscribers
1.9K photos
3 videos
101 files
4.61K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and other gov related and tech stuff.

Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Secure contacts [email protected]
Download Telegram
Я в своих выступлениях про поисковик по данным Dateno рассказывал про то что один из приоритетов его развития - это повышение качества данных.

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

Вот пример одной из практических задач. В Dateno сейчас 3383 типа форматов файлов, но, в реальности, это лишь 129 форматов, потому что пользователи указывают в полях типа file format что попало, часто с ошибками. Помимо того что есть указания по которым вообще нельзя понять что это за файл, так есть ещё и много форм написания расширений и типов. На скриншотах примеры с форматами и расширениями которые приходится приводить в порядок, сейчас, полувручную. Похожая ситуация с типами MIME, они очень даже активно заполняются с ошибками, хотя, казалось бы, так быть не должно.

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

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

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

#dateno #data #howitworks #datasearch #dataquality
К вопросу о дата продуктах, реестр каталогов данных Dateno [1] - это как раз один из них, как сайт, и как репозиторий кода [2]. В нём и собственные результаты сбора каталогов так и то что присылали и присылают пользователи.

И если сам Dateno - это продукт с потенциальной монетизацией и доступом по API (кстати не забудьте зарегистрироваться и попробовать API тут dateno.io), то каталог - это датасет в JSON lines, а теперь ещё и в формате parquet, вот ту можно его забрать [3].

Как и у любого дата продукта у него есть метрики качества. Некоторые из них трудно измерить - это полнота, поскольку референсных каталогов теперь нет, Dateno давно уже превосходит по масштабу все аналогичные. Не хвастаюсь, а печалюсь, не с чем сравнить.

Но то что касается постепенного обогащения данных можно измерить. Например, у каждого каталога есть поле status оно может иметь значения active и scheduled. Значение active то что каталог прошёл ручное заполнение и обогащение метаданными, у него у уникального uid'а есть префикс cdi. А есть значение scheduled у него префикс temp и это означает что это скорее всего каталог данных, но не проверенный вручную и не обогащённый метаданными.

Таких временных каталогов данных примерно 60%. Сначала я непроверенные каталоги вёл в отдельном реестре, потом стало понятно что неполнота их метаданных это не повод их не индексировать и они были слиты в единый реестр с чистовыми записями.

При этом часть метаданных автозаполнены даже для таких каталогов. Для некоторых каталогов данных - это название, страна, язык, точки подключения API, тип ПО. Для других незаполнены эти атрибуты и ряд других.

При этом даже для тех каталогов данных которые чистовые может не быть привязки к темам, может не быть тегов, могут быть неуказаны точки подключения API и тд.

Иначе говоря всё это и есть то что надо измерять в метриках качества потому что часть этих атрибутов переходят в фасеты Dateno.

Самые простые метрики качества реестра могут измеряться несколькими достаточно простыми SQL запросами. Чуть более сложные метрики, запросами посложнее и набором правил в коде на Python.

Всё это, конечно, хорошо линкуется с работой над качеством самого индекса Dateno. А пока я могу в очередной раз порекомендовать DuckDB как универсальный инструмент для таких задач.

Ссылки:
[1] https://dateno.io/registry
[2] https://github.com/commondataio/dataportals-registry
[3] https://github.com/commondataio/dataportals-registry/raw/refs/heads/main/data/datasets/full.parquet

#dateno #dataquality #sql #duckdb #metrics #datacatalogs