Scratchpads: начало

В прошлый раз (http://kgbase.ru/?p=243) мной был рассмотрен «глобальный» сервис GBIF, сделан неутешительный вывод о его применимости только в научном «энтерпрайзе» («корпорациях» — больших научных организациях с большими ресурсами) и дано обещание рассказать о «старшем брате» KGBase — системе, также ориентированной скорее на «малый и средний научный бизнес», но гораздо более «продвинутой» и с более широкими возможностями (хотя местами — с «дурной наследственностью»). С радостью выполняя данное обещание, начинаю рассказ о Scratchpads.

Scratchpads (http://scratchpads.eu), «черновики» — сетевая виртуальная среда для исследований биоразнообразия, позволяющая всем предоставлять доступ к своим данным и создавать свои собственные исследовательские сети («an online virtual research environment for biodiversity, allowing anyone to share their data and create their own research networks»: http://scratchpads.eu/about/concept). Очевидно, что концепция Scratchpads весьма близка к таковой KGBase (хотя, как будет подробно показано ниже, и несколько отличается). Поэтому я склонен считать своим долгом постараться подробно рассказать об этом проекте на данном сайте. Тем более, что информации на русском языке по сути нет: по крайней мере, запрос в поисковой системе Google такой ее не дает вовсе. И, как отмечалось в прошлой заметке о поездке в Нижний Новгород, Россия в целом пока почему-то «самоизолирована» от европейских проектов по изучению биоразнообразия.

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

О проекте Scratchpads:

Проект Scratchpads был создан в рамках другого, более «глобального» проекта Virtual Biodiversity Research and Access Network for Taxonomy (ViBRANT) (виртуальная сеть изучения и доступа к данным биоразнообразия для таксономии — http://vbrant.eu/). Который, в свою очередь, возник в рамках FP7 — Seventh Framework Programme, European Union research and development funding programme (7-й инфраструктурной программы Европейского союза по поддержке исследований и технологий — https://en.wikipedia.org/wiki/Seventh_Framework_Programme). На главной странице ViBRANT доступна и маленькая рекламная брошюра Scratchpads в формате pdf. Технически проект создан в 2011 году и поддерживается до настоящего времени Британским музеем естественной истории (Natural History Museum, London — http://www.nhm.ac.uk/). Практически весь программный код проекта написан сотрудниками именно этого учреждения. Выглядят эти замечательные люди примерно так: http://scratchpads.eu/about/team — там же можно вкратце ознакомиться со специализацией и вкладом в проект каждого из них. История проекта изложена в разделе «Новости» того же сайта и я не вижу необходимости подробно останавливаться на ней здесь.

Инфраструктура и особенности Scratchpads:

Основной частью организационной инфраструктуры является указанный сайт проекта, размещенный на серверах Британского музея естественной истории. Помимо информации о проекте, сайт представляет собой свободный хостинг для отдельных «черновиков», создаваемых пользователями. То есть сразу после регистрации каждый может создать собственный сайт на основе Scratchpads и приступить к его настройке и наполнению. Сайт будет размещен в домене 3-го уровня вида sitename.myspecies.info. Например: http://baskinsecta.myspecies.info/. Портал позволяет также производить поиск среди «черновиков» (как на myspecies.info, так и отдельных доменах), просматривать статистические данные каждого из них и т.п. Создание своего «черновика» на хостинге Музея естественной истории — самый простой, но, к счастью — далеко не единственный путь использования Scratchpads. Можно, кстати, заранее потренироваться в работе с системой в специальной «песочнице»: http://scratchpads.eu/support/sandbox — отдельном регулярно возвращаемом в исходное состояние сайте на Scratchpads со свободным входом в административную панель.

В структуру scratchpads.eu входят также открытый трекер на основе Redmine (http://support.scratchpads.eu/projects/scratchpads2) и подробная справочная система на основе Mediawiki (http://help.scratchpads.eu/w/Main_Page). Репозиторий проекта доступен как на основном портале (http://scratchpads.eu/develop/repository), так и на хостинге GitHub: https://github.com/NaturalHistoryMuseum/scratchpads2. Весь исходный код проекта размещен на условиях стандартной общественной лицензии GNU GPL 2 — соответственно, как и KGBase, может использоваться всеми заинтересованными лицами в любых целях при соблюдении требований свободной лицензии. Таким образом, Scratchpads — действительно свободный открытый проект: портал scratchpads.eu всего лишь предоставляет удобные средства для работы с системой, но сама система может использоваться и вне его, в том числе совершенно независимо от создателей системы.

Примечателен и в целом репозиторий Музея естественной истории на GitHub: https://github.com/NaturalHistoryMuseum. Он содержит довольно большое число проектов на разных языках программирования, так или иначе имеющих отношение к работе музея. Честно говоря, мне очень сложно в принципе представить себе подобный репозиторий какого-либо отечественного научного учреждения.

Таким образом, организационная структура Scratchpads достаточно развита, дружелюбна к пользователю и предоставляет все возможности как для «быстрого старта», так и для глубокого погружения в проект — вплоть до участия в работе над его программным кодом. Надо отдать должное команде проекта: они не только сделали его действительно открытым и свободным, но и прилагают массу усилий к привлечению активных пользователей в научном сообществе. Помимо открытого кода системы, общедоступного бесплатного хостинга проектов, справки и техподдержки Scratchpads может совершенно безвозмездно предложить:

— Обучающие материалы и даже оффлайновые тренинги с разработчиками проекта непосредственно в Музее (ближайший — в апреле следующего года): http://scratchpads.eu/support/training.

— Информационную и организационную поддержку заявок на гранты и т.п. для проектов, в которых планируется использовать Scratchpads — http://scratchpads.eu/support/grants.

— И даже возможность стать «чрезвычайным и полномочным» «послом» Scratchpads — своего рода «промоутером» проекта в национальном научном сообществе в обмен на некоторые дополнительные возможности (ну и сам почетный статус, разумеется) — http://scratchpads.eu/support/ambassadors. Кстати говоря, посла в России проект пока не имеет.

Технически Scratchpads основан на системе управления контентом сайтов Drupal (https://www.drupal.org/, написана на языке PHP), также распространяемой под свободной лицензией GNU GPL. С практической стороны система Scratchpads по сути — набор модулей Drupal. И принципиально ничего не мешает использовать даже не всю систему, а только отдельные ее части — точно также, как и любые другие модули, написанные для Drupal, можно использовать вместе со Scratchpads. Ну и в целом, работая со Scratchpads — необходимо понимать, что Вы работаете с Drupal и будете неизбежно сталкиваться со всеми его особенностями (и не все из них, кстати, могут обрадовать). В связи с этим — знание CMS Drupal, безусловно, сильно упрощает освоение Scratchpads.

Установка Scratchpads:

Собственно, первый шаг при использовании Scratchpads на сегодняшний день — выбор между использованием бесплатного хостинга на myspecies.info и развертыванием проекта на собственном сервере или хостинге. На мой взгляд, здесь нет очевидного решения даже для опытного пользователя Drupal или даже PHP-программиста.

С одной стороны, администратором домена myspecies.info является Natural History Museum. И Ваш домен третьего уровня — будет целиком в их руках. У Вас не будет доступа в административную панель хостинга либо другого способа прямого доступа к файловой системе сайта или его базе данных. С другой стороны, даже мне при всем известной страстной любви к «самостийности» это не кажется серьезной проблемой. Весь контент, включая списки литературы, таксономию, списки коллекционных экземпляров в виде таблиц MS Excell (об этом будет подробно ниже) останется у Вас и Вы сможете оперативно загрузить его на аналогичный сайт на своем сервере, если хостинг на myspecies.info прекратит существование или перестанет Вас устраивать. Более того, Вы всегда можете в административной панели сайта (Configuration -> System -> Backup Scratchpad) получить полную копию Вашего «черновика» для переноса на другой сайт. С другой стороны, выбирая хостинг от Музея естественной истории — Вы переложите многие технические вопросы обслуживания на плечи команды проекта: поддержка инфраструктуры, техническая поддержка, обновление, безопасность и т.д. — будут их головной болью, а не Вашей. Таким образом, на данный момент, как мне кажется, нужны весьма веские причины, чтобы использовать Scratchpads на своем сервере. Среди наиболее вероятных объективных причин такого рода:

— Необходимость нестандартной настройки сервера, сайта и (или) каких-либо модулей и элементов, которые не могут быть использованы на домене третьего уровня в myspecies.info.

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

Поэтому, если у Вас нет таких причин — изложенное ниже описание установки системы представляет для Вас скорее теоретический интерес. Процесс установки «черновика» на scratchpads.eu в таком случае сводится к регистрации на сайте и заполнению нескольких полей в веб-форме. Но в случае желания использовать Scratchpads самостоятельно или вероятности появления такого желания в будущем — будет полезно ознакомиться с описанием процесса установки.

Поскольку Scratchpads по сути — кастомизированная версия Drupal с дополнительным набором модулей, процесс ее установки в целом довольно тривиален. Разумеется, потребуется веб-сервер с соответствующим окружением. Оптимальная конфигурация и принципиальные варианты установки описана на странице http://scratchpads.eu/develop/hosting. Если Вы располагаете собственным полноценным аппаратным веб-сервером, Вы можете выбрать вариант «Managed Scratchpads server», который будет частью общей сети Scratchpads. Но, полагаю, такая возможность есть мало у кого из подобных мне индивидуальных исследователей или представителей небольших организаций — это, как и работа с GBIF (http://kgbase.ru/?p=243) — скорее, решение «корпоративного» уровня. Поэтому ниже я буду рассматривать исключительно работу с «Unmanaged Scratchpads server», который может быть установлен как на частный вируальный сервер, так и, с некоторыми оговорками, даже на «шаред юникс-хостинг», как и обычный Drupal (а также на личный локальный тестовый LAMP или WAMP сервер для собственных экспериментов и исследований системы).

Также для установки будут необходимы исходные файлы Scratchpads. Их можно получить из любого из двух указанных git-репозиториев: из http://scratchpads.eu/develop/repository через указанную там консольную команду git, из репозитория на GitHub — через веб-интерфейс хостинга («download zip»). Но в целом, поскольку Scratchpads — свободное ПО, получить его Вы можете откуда угодно: любое лицо, имеющее исходные файлы такого ПО — имеет и полное право их распространять любым способом. Поэтому лучше, конечно — получить актуальную версию Scratchpads из официального репозитория. Но если Вы получите ее от меня или соседа Ивана Ивановича — это будет столь же законный способ приобретения.

Как и в случае «обычного» (не кастомизированного) Drupal после этого останется разместить файлы в директории установки, подготовить базу данных для сайта (или позже выбрать префикс таблиц для установки их в уже существующую не пустую базу) и запустить в браузере http://mydomain/dir_where_scratchpads/install.php.

На первом шаге установки Scratchpads предложит список ее возможных вариантов. На самом деле сделанный здесь выбор всегда можно будет потом изменить: он лишь определяет, какие модули в установленном сайте будут по умолчанию активированы. Ничто в действительности не мешает потом сконфигурировать модули по своему усмотрению. И, более того: создать свою собственную установочную конфигурацию. Профили установки лежат в виде поддиректорий в директории profiles сайта со Scratchpads. Файлы профилей имеют вполне очевидную структуру, снабжены комментариями и, очевидно, не составляет труда собрать свой вариант «Pupkinspad333», который тоже будет предлагаться как один из вариантов установки Scratchpads. Надо будет лишь не забыть добавить в дистрибутив дополнительные модули, если Вы планируете их использовать. Здесь же мы пока будем рассматривать вариант установки «Scratchpad 2» как базовый.

Остальные шаги установки Scratchpads обычны: ядро Drupal проверит совместимость программного окружения, попросит Вас указать базу данных для сайта и данные для доступа к ней, установит модули в соответствии с выбранным Вами профилем и запросит параметры сайта и профиля администратора. Однако. Уже здесь Вы можете столкнуться с естественной, но не совсем приятной особенностью системы. Из-за обилия задействованных модулей Scratchpads совсем не радует производительностью в сравнении с «чистым» Drupal. На сайте проекта не случайно указаны довольно высокие требования к производительности системы и настройкам окружения. Так, запрос на установку модулей системы будет выполняться довольно долго и может вызвать принудительное завершение скрипта, если в php.ini установлен недостаточный лимит времени на исполнение. Может помочь и обновление страницы данного этапа установки: установка модулей будет продолжена с места сбоя. Но в целом надо быть готовым к трудностям такого рода. Поэтому установка Scratchpads на «шаред хостинг» (где нет возможности изменить настройку модулей сервера) может стать проблемой. А может и не стать — зависит от многих причин. Но гарантировать установку и стабильную работу системы на таком хостинге не представляется возможным. Кроме того, некоторые модули не смогут работать и без Java-контейнера Tomcat, модуля поиска Apache Solr, а также в операционной системе, отличной от Linux. Поэтому надо просто принять как данность: Scratchpads рассчитана на работу в определенном (хотя и весьма обычном) окружении, и если Вы будете пытаться запустить ее в другом (отличном от рекомендованного на сайте проекта) — уже на этапе установки может понадобиться «обработка напильником» и соответствующие технические знания и навыки. Все возможные «мели и рифы» предусмотреть и описать заранее невозможно.

В этом состоит, пожалуй, первое идеологическое отличие KGBase от Scratchpads: при проектировании своей системы я изначально предполагал заложить в нее максимальную отказоустойчивость. Система должна работать по сути в любых условиях, в которых принципиально возможно установить и запустить веб-сервер Apache и интерпретатор PHP с настройками «из коробки». В случае Scratchpads на это рассчитывать не стоит. Повторюсь: это не недостаток — это особенность, которую надо заранее иметь в виду.

Последний этап установки системы в данном варианте — снять выделение в поле «Standard Scratchpad» — тем самым Вы сообщите системе, что она будет работать в «не родном» окружении и не будет частью сети основного проекта ее авторов. Если установка успешно завершилась — Вас можно поздравить: Вы только что «created your own research network» и можете переходить к ее настройке и наполнению.

Базовые возможности Scratchpads:

Необходимо сразу еще раз уточнить: Scratchpads — надстройка над свободной системой управления сайтом общего назначения Drupal. Поэтому — в принципе, установив систему, Вы можете создать на ней веб-портал любого рода — с болгами, форумами, фотогалереями, интернет-магазином и вообще почти всем, что придет Вам в голову. И даже набор модулей, относящихся собственно к Scratchpads — очень широк и требует отдельного развернутого описания. Настройка внешнего вида сайта, работы ядра Drupal и.т. — подробно описаны в документации по этой CMS и здесь рассматриваться не будут. Речь пока пойдет о «быстром старте» — начале наполнения установленного «черновика» собственно данными о биоразнообразии.

Итак, у Вас уже есть свежий установленный «черновик». С чего начать? Начать следует c таксономии. В данном случае — со списка таксонов. Опытные пользователи Drupal могут столкнуться здесь с неожиданной коллизией: таксономия (в терминологии Drupal) / таксономия (биологическая). Новичкам лучше сразу ознакомиться с концепцией «таксономии», используемой в данной CMS: словари, ноды, сущности, термины. Вопрос подробно освещен в документации Drupal и множестве статей в Интернете. «Таксономия» является самой своеобразной особенностью системы и лучше заранее понимать ее существо и применение. Но для базового использования Scratchpads это не является обязательным. В данном случае мы хотим именно просто создать иерархический список биологических таксонов нашей базы данных биоразнообразия.

Итак, выбираем Structurture -> Taxonomy -> Add vocabulary. Даем таксономическому списку название и краткое описание. Указываем, какого рода таксономию мы хотим создать — животных, растений или прокариот. Сохраняем. Заготовка таксономического списка готова. После его первого наполнения в структуре сайта появится отдельная закладка с его названием и красивым разворачивающимся деревом таксонов на Java Script. Для наполнения таксономии открываем вкладку главного меню Import и выбираем один из вариантов в разделе Taxonomy выпадающего списка. Самый простой вариант создания своего локального списка флоры или фауны — Excel file import, поэтому здесь я пока остановлюсь именно на нем. В появившейся вкладке «Select vocabulary» выбираем название созданного нами списка. Откроется форма для импорта файла MS Excel и две ссылки: на пустой шаблон и шаблон с уже внесенными Вами данными (их пока нет, так что эта ссылка пригодится позже для локального сохранения данных). Итак, сохраняем и открываем шаблон. И…

И вот тут нам начинает открываться «темная сторона» Scratchpads — та самая «дурная наследственность», о которой упоминалось в самом начале этой заметки. Да, это — ужасная структура формата Darwin Core, «унаследованная» Черновиками от GBIF. Я понимаю, что это первый и единственный детально проработанный формат данных и он совместим с «корпоративным» порталом, но работа с ним — это непрерывная боль. И эта боль, которую будет необходимо терпеть все время, пока Вы будете работать со Scratchpads — по моему мнению, и есть главный и пока неизлечимый недостаток системы. Вы всегда будете либо заполнять огромные сложные таблицы Excel, либо редактировать записи по одной через сложные веб-формы. В данный момент нет никакой возможности работы с данными системы при помощи какой-либо СУБД: никакой пакетной обработки данных, синхронизации, репликации, удаленного прямого доступа к данным — по сути в Scratchpads просто _нет_ базы данных биоразнообразия. Честно говоря, если бы не эта боль — я бы задумался о полном отказе от своего детища KGBase в пользу «британских черновиков». Но я точно знаю, что не смогу долго терпеть боль работы с Darwin Core. Не смогу работать с системой, не имеющей полноценной базы данных биоразнообразия (это при том, что Scratchpads, работая на основе Drupal, естественно, использует СУБД) или прямой связи с таковой.

При этом надо отдать должное команде Scratchpads: они смогли упростить работу с Darwin Core настолько, насколько это в принципе возможно. Например, в таблице со списком таксонов можно не заполнять многие обязательные в формате поля (в частности, идентификаторы GUID система может вставить при импорте сама), значения многих полей можно выбирать из списка, ко многим полям автоматически показываются пояснения и т.п. Поэтому работу с данными биоразнообразия в этой системе можно назвать относительно терпимой, хотя все равно неоправданно сложной и неэффективной.

На вики-сайте проекта (http://help.scratchpads.eu/w/Main_Page) есть краткие описания всех процедур работы с системой, в частности — алгоритма импорта данных и полей таблиц-шаблонов. Поэтому ниже я опишу лишь общую последовательность наполнения «черновика» данными и остановлюсь на некоторых не очевидных моментах, слабо освещенных в официальной документации, но мне кажущимися крайне важными и способными доставить немало головной боли при не знании о них.

В шаблоне таксономии, в принципе, можно заполнить лишь минимально необходимый набор полей (Term name, Parent Term Name, Authors, Rank, Unit name 1, Usage), и можно импортировать через указанную выше форму таксономический список в наш «черновик». При этом настоятельно рекомендую сохранить Ваш исходный файл с таксономией. Ибо если позже вы скачаете шаблон с уже имеющимися данными для их правки и дополнения, структура данных в нем будет несколько иной. И в целом — у системы пока что есть проблемы с обработкой таксономии и возможностью ее «реекспорта» — получить данные из одной установленной системы и перенести в точно такую же, но установленную в другом месте. Это не фатально, но может усложнить редактирование данных, и лучше быть готовым к этому заранее. Как и к проблемам с производительностью при импорте даже не очень большого объема данных. Так, в моем случае таблица с примерно 2 тысячами таксонов импортировалась более часа (типичный «офисный» компьютер с процессором Intel Core i-3 3,3 GHz, RAM 2 Gb, Windows XP) — около 2 секунд на обработку одной записи о таксоне. Так что приходится с сожалением констатировать: система управления данными Scratchpads совершенно не приспособлена для групповой обработки «промышленных» объемов данных: одновременная обработка сотней записей — уже сложна, тысяч — мучительна, десятков тысяч — практически невозможна. Указанному в формах импорта ограничению около 64000 строк верить не стоит — на данный момент даже на сайтах на myspecies.info импорт «ломается» (принудительно завершается с сообщением об ошибке) на более чем одной тысяче строк. Вполне вероятно, что Вам придется делить файлы на несколько частей и импортировать их поочередно.

Второй шаг в наполнении «черновика» данными — добавление локалитетов (мест сбора материала и наблюдений таксонов из уже загруженного списка). Проходим из главного меню вверху страницы: Content-> Location -> + import into: Location (XLS). Можно, разумеется, вводить данные локаций по одной через форму (+ Location). В случае же выбора импорта файла MS Excel откроется форма, аналогичная форме импорта таксономии. Точно также можно скачать и заполнить шаблон таблицы со свойствами локалитетов. Он достаточно прост и почти не требует пояснений. Единственное, что опять огорчает — снова «тяжелое наследие старого режима» — DwC. Да, локалитет — всегда математическая точка на местности. Можно выбрать систему координат и датум, но математически описать локалитет как объем пространства или протяженную линию — нельзя, нет. И настолько же «радует» жесткая иерархия континент-страна-область-местность. Задать свою структуру иерархии — нельзя, нет.

Важный момент: все импортированные локации (как и добавленные позже образцы/наблюдения) будут по умолчанию помечены в системе как «Unpublished», то есть не доступные для просмотра незарегистрированными пользователями. Чтобы «опубликовать» их, необходимо снова пройти Content-> Location, выбрать локации и нажать Choose an operation -> Publish content.

Когда у нас уже есть таксоны и локации, мы можем добавить список находок/наблюдений. Для этого снова выбираем из верхнего меню Content-> Specimen/Observation и по сути повторяем все действия, как со списком локалитетов. И да, мы тут снова увидим «ад портяночных таблиц», пришедший в «черновики» из «всеобщей» структуры Darwin Core. Темный ужас этой таблицы заслуживает, вероятно, отдельного анализа с точки зрения как данных биоразнообразия, так и реляционных баз данных — ибо с обоих точек зрения это не вызывает ничего, кроме «тоски и скрежета зубовного». Пока же остановлюсь только на моментах, важных для собственно внесения данных в систему. Самый неожиданный и странный из них — требование системы указывать только тех сборщиков материала и определивших его специалистов, которые зарегистрированы на созданном сайте как пользователи. Да: в шаблоне можно выбрать в этом качестве только пользователей, зарегистрированных на момент создания шаблона. Иначе файл выдает сообщение об ошибке. Это тем более странно, что есть все-таки способ «обмануть систему». Можно скопировать строки с другими именами из другого файла. И такой заполненный шаблон успешно импортируется в систему — лишь выводятся уведомления, что такой пользователь не зарегистрирован. Это очень, очень странное решение. Сборщик материала, например, может быть просто уже мертв. И создавать «фэйкового» пользователя с никнеймом abecker (http://altsarepta.ru/ru/stati-po-istorii-sarepty/59-uchenye-sarepty-a-k-bekker) адресом aleksankr_becker@fake.sarepta, чтобы «угодить» системе — очень, очень странное действие. Но Scratchpads потребует по сути именно этого при попытке внести в систему сборы Александра Каспара Беккера, да. Структура данных, как всегда, «порадует» огромным количеством излишних и отсутствием необходимых в каждом отдельном случае полей. Полагаю, каждый специалист при работе с этим наследием формата данных Darwin Core будет по-своему «удивлен — да, приятно — нет». И еще один, очень каверзный и не описанный в документации момент — связан с названиями таксонов, к которым относятся образцы. Как и в случае с именами сборщиков/детерминаторов, они должны быть _только_ из соответствующего столбца таблицы «PermittedValues» того же файла. И здесь ситуация даже хуже: при импорте файла, куда копированием вставлены иные названия (MS Excel при этом промолчит) Вы рискуете «сломать» уже созданную на сайте таксономию (а ее пересоздание при большом количестве таксонов, как уже отмечалось — тоже боль). При этом система тоже коварно промолчит — Вы не увидите никаких сообщений и предупреждений. Поэтому будьте внимательны: сначала — правка таксономии, потом — создание шаблона, потом — заполнение _именно этого_ шаблона, потом — импорт образцов/наблюдений. После импорта не забудьте повторить ту же операцию, что и с локациями, если хотите сделать информацию общедоступной.

Возможный, но не обязательный шаг — добавление названий таксонов. Необходимые для этого действия аналогичны добавлению локалитетов и коллекционных образцов (но выбрать необходимо, соответственно, Taxon Description). О шаблоне таблицы описания сказать почти нечего. Можно отметить только его, как всегда, избыточность и при этом негибкость (снова наследие DwC) и напомнить, что название таксона также надо выбирать строго из имеющегося в шаблоне списка. Кстати, описания таксонов при импорте по умолчанию становятся «Published» — доступными всем независимо от регистрации (в противоположность локалитетам и образцам). Логика этого мне совершенно не понятна, но работает это так.

Таким образом, основные данные о биоразнообразии могут быть добавлены в «черновик» данными тремя (четырьмя) действиями. После этого можно перейти на закладку таксономического списка на главной странице созданного сайта и просмотреть данные по каждому таксону (выбрав его из разворачивающегося дерева). Например, вот так: http://baskinsecta.myspecies.info/taxonomy/term/2146. Вкладки на странице таксона позволяют просматривать и редактировать (при наличии полномочий у пользователя) загруженные данные.

Дополнительно Scratchpads предоставляет набор «виджетов» (включаются и отключаются на странице меню Structure -> Tools). Это набор инструментов, позволяющих отображать на странице таксона в соответствующих вкладках информацию о нем со сторонних сервисов (Encyclopedia of Life, IUCN и многих других). Соответственно, ничто не мешает создать виджет для подключения и любых дополнительных ресурсов, например — системы на основе KGBase.

На этом я пока предпочту остановиться, в связи с уже большим объемом текста. Работу с литературными источниками и медиафайлами, вероятно, следует рассмотреть в следующей заметке.

Какой вывод можно сделать о системе управления данными биоразнообразия Scratchpads на основе выше сказанного? Система очень удобна наличием большого количества инструментов «из коробки». Будучи построена на достаточно развитой свободной системе управления сайтом (Drupal), она легко интегрируется практически со всеми необходимыми пользователю сервисами. И если Вы хотите организовать коллективную работу над относительно небольшим объемом открыто опубликованных данных, Scratchpads — просто отличное решение. Но помните, что под симпатичной и удобной оболочкой «черновиков» — живет монстр по имени Darwin Core. Берегитесь его! Он может заставить Вас заполнять ужасные «портянки» и портить Ваши данные ему в угоду. Из-за него «черновики» размазывают данные по страшному множеству таблиц БД и делают неуправляемыми. А если серьезно — собственно система управления данными Scratchpads пока что ужасна с точки зрения специалиста по биоразнообразию. Обработка больших объемов данных превращается в езду на стоколесном велосипеде с колесами разного диаметра, которые надо крутить отдельно — с разной скоростью и в разные стороны. Нет пакетного импорта (экспорта) массивов связанных данных (локации-серии-образцы-определения в KGBase), нет контроля целостности данных, нет формирования единых отчетов по данным. Для профессиональных целей, увы — «черновики» дают пока еще меньше, чем существующий черновик KGBase, написанный «на коленке». Это скорее средство публикации данных и совместной их правки через веб-интерфейс, чем управления данными. И, как и в случае с GBIF — кирпичом на шее проекта висит откровенно неудачный формат данных, громоздкий и ригидный. Без отказа от него — лично я не представляю превращения Scratchpads в серьезный инструмент для специалистов. И состояние абсолютного большинства «черновиков» на myspecies.info — увы, подтверждает это горькое предположение. Ибо повторюсь снова: работа с большими объемами часто меняющихся данных в Scratchpads — это ад как он есть. И имя повелителя этой преисподней — Darwin Core.

На заметку всем, планирующим разработку какой-либо архитектуры данных (независимо от того, будет она представлена в реляционной или иерархической модели). Есть только одна best practice: один тип сущности — один раздел структуры (отдельная таблица или самостоятельное дерево). _Нельзя_ смешивать в одном представлении разные сущности — это дорога, ведущая только в ад и больше никуда. Коллекционный образец — одна сущность, определение специалиста — другая сущность. Между ними нет прямой связи: образец может быть не определен никем или определен 20 раз (и каждое из определений может быть как верным, так и нет, и менять это свойство со временем). И каждая из таких сущностей должна описываться своим набором атрибутов, среди которых должны быть выделены обязательные (включая один уникальный для каждого экземпляра сущности) и допустимые. Пространство, на котором собран образец — тоже самостоятельная сущность, и попытки сделать ее атрибутом образца — снова ведут в ад: появляются «атрибуты атрибута» вроде «точности координат точки». Это просто факт: если у Вас возникла необходимость создать атрибут, описывающий другой атрибут той же сущности — это «звоночек сверху»: Вы встали на ложный путь. Единственный путь к спасению — создание новой отдельной сущности со своими атрибутами, иначе рано или поздно Ваша архитектура данных начнет работать не на Вас, а против Вас. И Ваше счастье, если Вы это пресечете это вовремя, а не когда накопите объем изначально испорченных данных, сравнимый с базой GBIF. Нельзя экономить на проектировании архитектуры данных, нельзя торопиться с ней, нельзя проектировать «как-нибудь в процессе». Darwin Core — типичный пример результата несоблюдения заповеди, выделенной жирным шрифтом выше.

Тем не менее, проект Британского музея естественной истории — очень достойная попытка заполнить пустоту в области открытых систем управления данными биоразнообразия. Возможности системы уже очень обширны, и большая их часть осталась за пределами этой заметки. Искренне надеюсь в ближайшее время снова вернуться к рассказу о ней. И будет очень приятно, если система станет более полезной для локальных специалистов по биоразнообразию, и еще лучше — если она уйдет с ложного пути в архитектуре данных. Пока же в виде маленького «бонуса» добавлю на скорую руку созданный маленький набор инструментов для переноса данных из KGBase в Scratchpads — архив. Эти утилиты использовались при заполнении «черновика» Insecta Baskunchakiensis. Они позволяют представить данные KGBase в виде текста, разделенного точной с запятой в формате шаблонов Scratchpads. Для использования данные необходимо скопировать и сохранить в текстовом редакторе как csv-файл. Его можно будет открыть в MS Excel и скопировать в шаблоны (более удобную оболочку для утилит каждый может сделать сам). Разумеется, необходимо помнить об особенностях работы с шаблонами, указанными выше. Ну и о том, что текст генерируется в кодировке, разумеется, UTF-8, а Excel может отнестись к ней нехорошо ;).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *