Можно ли найти конкретного человека, жившего в XVII веке? Выражаясь современным языком «пробить по базам». Оказывается, архивные документы хранят массу информации об обычных людях того периода. Однако существует ряд сложностей, не позволяющих обычному исследователю добраться до этой информации. Во-первых, нужно пройти определённую процедуру по получению доступа в архив. Во-вторых, не всегда можно выйти на нужный документ, используя так называемый научно-справочный аппарат – различные описи и реестры документов, имеющиеся в архиве. Наконец, не имея навыков чтения документов XVII века, которые написаны скорописью, почти нереально ознакомиться с его содержанием.
Данные проблемы предполагается решить с помощью создания базы данных служилых людей XVII века. Об этом небольшая история.
Как всё началось.
Привет! Меня зовут Дмитрий и вот уже более 10 лет я изучаю историю южных уездов России XVII века. Территориально – это современные Белгородская, а также соседние Воронежская, Курская, Липецкая и другие области. Населены они были тогда так называемыми служилыми людьми – они получали здесь в качестве служебного жалования земельные наделы, которые сами и обрабатывали. В XVIII веке их потомки стали однодворцами, а затем государственными крестьянами. Большая часть населения Курской, Воронежской и соседних губерний XIX века происходят из тех самых служилых людей XVI–XVII веков.
История и краеведение – это хобби, которое выросло из увлечения генеалогическими исследованиями, которые я начал в 1999 году. В поисках предков дошёл до начала XVII века (ранее просто отсутствуют архивные документы). В какой-то момент мне стало интересно, как жили мои предки, в какие события были вовлечены и что происходило вокруг – в общем попробовать представить их окружение и быт. Я начал искать информацию, ходить в библиотеки. По правде сказать, историю в школе я не любил. Учился в физмат классе, проявлял повышенные способности к математике, выигрывал олимпиады. Но после развала союза в 1992 году выбрал «перспективную» профессию экономиста, по которой и получил высшее образование в Новосибирском госуниверситете. Затем работал в различных компаниях аналитиком, менеджером, руководителем среднего звена. Имею опыт работы с базами данных (Access), немного SQL, но всё это на довольно элементарном уровне.
Как жили 400 лет назад?
В моих исторических исследованиях (с частью статей можно ознакомиться здесь: http://www.old-kursk.ru/avtor/evsukov.html) меня прежде всего интересует жизнь простых людей. В начале я даже не мог себе представить, сколько сведений содержат документы XVII века, которые в основном хранятся в архиве древних актов (РГАДА), регулярным посетителем которого я стал после переезда в Москву. Здесь и различные судебные разбирательства об оскорблениях, грабежах, спорной земле, краже свиней, незаконном покосе травы и т.п. Так, по одному из моих собственных предков удалось обнаружить дело о вымогательстве у него крупной денежной суммы. Вымогателями оказались племянники пращура, которые просили его в течение недели положить 50 рублей в яму под вишнёвым кустом в 20 шагах от дороги. Случилось это в 1649 (!) году (полный текст письма-вымогательства здесь: http://www.evsyukov.ru/sprav/rodevs.html). На таких данных можно составлять интересные биографические истории людей, живших почти 400 лет назад (пример: http://www.old-kursk.ru/book/pdf/evs_almanah.html).
Но есть один нюанс… Все эти документы почти недоступны для обычного исследователя не только из-за того, что хранятся в РГАДА, где их непросто обнаружить в силу сложной организации справочного аппарата архива, но и из-за того, что написаны они т.н. скорописью – деловым письмом того времени. Обычному человеку эту письменность сходу не прочесть.
Таким образом, найти нужного человека или описание какого-либо события – большая проблема. Чтобы облегчить себе задачу вот уже более 10 лет я «индексирую» просмотренные дела и ввожу найденных служилых людей в специальные таблицы. Что-то подобное делают ещё не менее десятка исследователей. Собранными материалами обмениваемся друг с другом, кто-то выкладывает их в интернете или публикует на форумах. В результате за годы работы имею в своём распоряжении «справочный аппарат» в виде некоторого количества таких разрозненных таблиц, которыми пользуюсь в своих поисках. Всего в них порядка полумиллиона строк.
Как найти человека в XVII веке? — «Пробить по базам»
Уже давно вынашиваю планы создать из этих таблиц единую базу, которую в дальнейшем можно будет пополнять разнородными сведениями как из самих архивных документов, так и из их печатных публикаций, а также упоминаний на форумах и т.п. Поделюсь своими мыслями на этот счёт. Ищу единомышленников, которым может стать интересна эта тема.
Продумал структуру реляционной базы данных (перечень таблиц, полей и связей). В общих чертах идея такая – фиксировать в документах упоминания различных исторических событий и задействованных в них людей в привязке ко времени и месту. Событиями могут быть, например, перепись земель, смотр войска, бой с татарами и т.п., или более мелкие – такие как судебный спор, выделение земли отдельных служилым людям и прочее. Поиск по базе вести по ФИО, роду службы, времени, месту, событию и т.п.
В создании такой базы, а вернее в индексации дел, есть несколько трудностей. Одна из них заключается в сложности (а иногда и невозможности) однозначной идентификации людей в документах. Один и тот же человек может быть записан то как «Ивашко Семенов сын Кочетов», то как «Иван Кочет», иногда без фамилии, а может быть и вовсе с какой-то другой. Эта проблема решается созданием справочников (словарей) имён, отчеств и фамилий в отдельных таблицах, связанных отношением «один-ко-многим». Для примера приведу рабочие варианты реестров имён (http://www.evsyukov.ru/sprav/names.html – внимание есть неточности) и фамилий (http://www.evsyukov.ru/sprav/famreest.html — помимо очевидных вариаций написания встречаются и такие как Артебякин-Вертебякин или, скажем, Нафонайлов-Афонайлов- Фонайлов). Отдельно создаётся справочник персон, который предполагается наполнять при выявлении однозначных соответствий между персонами в разных документах (например, берутся два документа с разностью в 10-15 лет и настраиваются соответствия между персонами из обоих списков).
Есть ряд идей как обновлять базу. Например, при экспорте данных из внешних таблиц в случае отсутствия отдельных имён/фамилий/отчеств экспертом-оператором базы принимается решение об их привязке к унифицированным написаниям, уже имеющимся в справочниках (с одновременным обновлением этих справочников).
Сложнее выглядит фиксирование родственных связей (отец-сын, брат-брат и т.п.). Думаю, использовать рекурсивные связи, но есть сомнения в корректности выполнения запросов.
Тестовый вариант базы пока сделал в Access (ниже скриншот одного из вариантов). Однако более перспективным видится использование PostgreSQL.
Каким может быть размер базы? По моим оценкам для достаточной репрезентативности по изучаемому региону – не менее 5 млн записей. Перспективный объём – десятки миллионов записей. Если масштабировать на центральные, северные регионы и Сибирь – ещё в несколько раз больше.
В настоящее время пишу диссертацию по истории одного из южных уездов, поэтому планирую для начала протестировать эту базу на ограниченной выборке (20-40 тыс. записей). Думаю, что на первом этапе вполне хватит рабочей (тестовой) локальной версии, на которой можно будет отладить структуру и различные виды запросов. Туда же нужно будет прикрутить модуль экспорта и проверки/корректировки данных. На втором этапе можно подумать о серверном варианте, который позволит работать с базой группе исследователей.
Конечно, я не упомянул здесь один из важнейших аспектов ввода информации, связанный с распознаванием образов. При наличии такой возможности процесс наполнения базы может ускориться на порядки. Но об этом в следующий раз.
А может быть графы?…
Остался главный вопрос. А подходит ли реляционная база под такие задачи?..
Поясню. В диссертации планирую исследовать в том числе социальные связи между жителями. Например, «товарищеские/соседские» (вместе подавали челобитную, были свидетелями при выделении земли, проживали в одной деревне и др.), «вражда/соперничество» (судебные разбирательства, кражи, разбой и др.), «экономические» (сделки по продаже имущества), «вертикальные» (например, поручение, выдаваемое воеводой) и прочее.
В наше время во многом аналогичные задачи решаются при описании взаимодействий участников внутри социальных сетей. Поэтому знающие люди подсказали, что для анализа больше подходят графовые базы. Так, вершинами могут быть события, персоны и др., рёбрами – взаимодействия между персонами, участие в событиях и т.п.
Как думаете, какой вариант более подходит под описанную задачу? Буду рад выслушать, пообсуждать любые идеи и найти единомышленников для реализации проекта.