Формат FRNP: назначение и спецификация

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

Хочу читать статью тут

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

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

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

Когда геоботаническое описание написано на бланке, мы связываем данные с их контекстом по взаимному расположению записей. То же самое происходит, когда данные перенесены в таблицу экселя. Для того, что-бы машина работала с информацией, ей необходимо явно указать связь данных с их контекстом. Без этого невозможна даже примитивная выборка и сравнение данных, не говоря уже о более сложных вещах. Если не верите, то попробуйте решить следующую задачу:

«Из пяти множеств описаний отобрать те, для которых коэффициент Жаккара более 0,7 если в них присутствует группа таволги и коэффициент от 0,4 до 0,7, если в них доминируют луговые виды»

Представили себе объем работы? Ну, тогда хера ли мы с вами рассуждаем о всякой банальщине, ловите истинную суть этого поста:

=======================================================

Формат FRNP, версия 1 (Voikar)

Формат FRNP (format research nature page) предназначен для хранения и автоматизированной обработки данных о растительности, почвах и отобранных образцах, полученных в ходе полевых работ.

Синтаксис
В нотации Бэкуса-Наура:
Char ::= ‘A’|’B’| … |’Z’|’a’|’b’| … |’z’|’%’|’№’|’0’ | ‘1’ | ‘2’ | … | ‘9’|’_’|’+’
Note ::= ‘A’|’B’| … |’Z’|’a’|’b’| … |’z’|’%’|’0’ | ‘1’ | ‘2’ | … | ‘9’|’_’|»’|’,’|’.’|’%’|’№’|’@’|'(‘|’)’|’+’
Text ::= ‘»‘
Polychardelimited ::= ‘,’
Delimited ::= ‘:’
End ::= ‘;’
String_end ::= ‘$’
Name ::= {Char},Char
Data ::= {{Text,Note,Text}|{{Char},Polychardelimited,{Char},Polychardelimited},{Char}
Descriptor ::= {Name,Delimited,Data,End}String_end
Base ::= {Descriptor}

Семантика
Пробелы и символы переноса строки игнорируются.

Приставки и окончания:
total — общее (например общее проективное покрытие);
% — показатель измеряется в процентах;
1,2…10,… — показатель измеряется в долях от 1,2…10,…;
quality — качество;
№ — номер;
sp. — вид;
c — окружность;
sm — показатель измеряется в сантиметрах;
h — высота;
m — показатель измеряется в метрах;

Корни:
dendro — древесный ярус;
underdendro — подрост;
upgrass — подлесок;
grass — травы и кустарнички;
undergrass — мхи и лишайники;

Дескрипторы описания:
tags — ключевые слова (теги) описания;
time — дата в формате ГГГГММДД, например седьмое июля 2015 года: 20150807;
author — автор или авторы описания;
feedback — контакты для связи с автором;
license — лицензия распространения данных;
source — источник данных;

Дескрипторы местоположения
lat — широта;
long — долгота;
ele — высота над уровнем моря;
datum- система координат:
wgs84 — WGS-84;
pulkovo42 — СК-42;
unknown — Неизвестная система координат;
area — площадь описания в квадратных метрах;
note- примечание;

Дескрипторы описания древостоя:
totaldendrocover% — общая сомкнутость древостоя в процентах;
dendrocover% — повидовая сомкнутость древостоя в процентах;
dendroshare10 — состав древостоя в долях от десяти;
dendrocompleteness — абсолютная полнота древостоя в квадратных метрах;

Дескрипторы описания подроста:
totalunderdendrocover% — общая сомкнутость подроста в процентах;
underdendrocover% — повидовая сомкнутость подроста в процентах;
underdendroquality3 — состояние подроста в трех баллах (1-нормальный, 2-удовлетворительный, 3-угнетенный)

Дескрипторы описания подлеска:
totalupgrasscover% — общая сомкнутость подроста в процентах;
upgrasscover% — повидовая сомкнутость подлеска в процентах;

Дескрипторы описания травяно-кустарничкового яруса:
totalgrasscover% — общее проективное покрытие травяно-кустарничкового яруса в процентах;
grasscover% — повидовое покрытие травяно-кустарничкового яруса в процентах;

Дескрипторы описания мохово-лишайникового яруса:
totalundergrasscover% — общее проективное покрытие мохово-лишайникового яруса в процентах;
undergrasscover% — повидовое покрытие мохово-лишайникового яруса в процентах;

Дескрипторы описания почв:
soil(N) — номер почвенного горизонта верху вниз (soil0,soil1,soil2 и т.д.);
Шаблон значения дескриптора описания почв
m_colorsoil_density_composition_root_stone_coal
m — мощность горизонта;
colorsoil — цвет почвы по А.С. Захарову (например светло серый — «white-grey»)
composition — механический состав горизонта:
cl — глина;
hl — тяжелый суглинок;
ml — средний суглинок;
ll — легкий суглинок;
sl — супесь;
sd — песок;
density — плотность горизонта:
f — слитой;
t — плотный;
p — уплотненный;
c — рассыпчатый;
l — рыхлый;
root — наличие корней;
stone — наличие камней;
coal — присутствие углей;
peat — торф;

Дескрипторы описания отобранных образцов:
dendroextruder№_sp._csm_hm — отобранный образец дерева с указанием номера, вида, окружности и высоты дерева;

Пример описания:
tags:»betula»;
time:20150807;
lat:66.00287;
long:63.66359;
ele:58;
datum:wgs84;
note:
«Описание №102. Склон 3 градуса ЮВ экспозиции с кочками высотой 0,4 м»;
totaldendrocover%:40;
dendroshare10:
picea_obovata_4,
betula_aurata_6;
dendroextruder№_sp._csm_hm:
248_picea_obovata_71_13,
249_picea_obovata_71_14,
280_betula_aurata_53_13;
totalunderdendrocover%:5;
underdendro:
picea_obovata,
betula_aurata;
totalupgrasscover%:5;
upgrasscover%:
sorbus_sibirica_1,
duschekia_fruticosa_3,
rosa_accicularis_1;
totalgrasscover%:80;
grasscover%:
vaccinium_myrtillus_70,
ledum_palustre_7,
carex_globularis_1,
vaccinium_vitis-idaea_1,
licopodium_sp._3,
linnea_borealis_+;
totalundergrasscover%:40;
undergrasscover%:
pleurozium_schreberi_30,
ptilium_crista-castrensis_10,
politrichum_commune_5,
sphagnum_sp._+,
hylocomium_splendens_+;
soil0:
13_peat;
soil1:
6_white-grey_cube_l_sd_stone_;
soil2:
brown_cube_плотн_sd;
$

=======================================================

Да, я знаю, что описанная спецификация содержит косяк на косяке, но надо же хоть с чего то начинать. Кстати, если по Бэкусу-Науру есть специалисты, ткните меня пожалуйста носом в косяки оформления синтаксиса. Пока я вижу только то, что запись Data типа ___,____,_____ будет считаться допустимой. Это не очень хорошо, но приемлимо.

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

Ваш e-mail не будет опубликован.