«Системный Блокъ» много раз писал об исследованиях на материале DraCor. Настало время рассказать подробнее о самом корпусе.
Что такое DraCor?
DraCor — сокращение от drama corpora — это собрание размеченных по стандарту TEI драматических текстов на 11-ти языках. Здесь есть корпуса пьес на французском, немецком, испанском, русском, итальянском, шведском, португальском (только Кальдерон) и английском (только Шекспир), а также совсем небольшие коллекции эльзасских, татарских и башкирских пьес.
Два крупных корпуса пьес в составе собрания — немецкий и русский — были собраны и поддерживаются создателями проекта DraCor (часть команды из России — это Центр цифровых гуманитарных исследований Высшей школы экономики). Остальные корпуса были взяты из сторонних проектов, а затем адаптированы для совместимости с функционалом DraCor.
Programmable Corpora
DraCor не похож на традиционные корпуса. Этот проект реализует концепт Programmable Corpora — «программируемых корпусов».
Чтобы понять суть этой философии, нужно увидеть, чему она противостоит. Ее противоположность — стремление создать единственный веб-сервис, в который уместится весь функционал, потенциально нужный пользователям. Вместо этого концепт Programmable Corpora предлагает сфокусироваться на создании инфраструктуры, которая позволит исследователям получать необходимые данные — в том числе для дальнейшей их обработки сторонними средствами [1].
Так, если исследователь хочет изучить реплики женских персонажей в определенной пьесе, корпус дает возможность по специальному запросу получить нужные фрагменты текста. Никакой лишней информации, никаких автоматических измерений, проведенных программой без желания пользователя — только готовый материал для исследования. Точно так же можно получить, например, все авторские ремарки в тексте или социальную сеть персонажей нужной пьесы в машиночитаемом виде.
Все это обеспечивается обращением к корпусу через API (application programming interface; интерфейс программирования приложений). API — набор команд, позволяющих одному приложению использовать функции другого, отдавать часть своих задач на «аутсорсинг». При этом API не требует детального знания того, как устроено другое приложение, для работы с ним. Его можно сравнить с пользовательским интерфейсом (UI) программы — только предназначенным не для людей, а для других программ [2]. Благодаря API пользователь достаточно легко может подключиться к корпусу на любом уровне — начиная с метаданных обо всех произведениях и заканчивая словами конкретного персонажа одной пьесы. Благодаря такой гибкости запросов исследователи могут достаточно легко получить именно тот результат, который нужен для дальнейшей работы.
Следующее преимущество «программируемых корпусов» — технически они получаются менее сложными, чем программы «все-в-одном». Их проще разрабатывать и поддерживать — соответственно, развиваться такие проекты будут быстрее и стабильнее. Хорошей иллюстрацией этого достоинства Programmable Corpora является история программы Dramavis [3]. Она была написана на языке Python и предназначалась для обработки данных о социальных сетях драматических произведений. Dramavis может построить графы на основе информации о строении социальных сетей нескольких пьес, а затем расположить получившиеся схемы в хронологическом порядке на одном огромном изображении. Параллельно с этим программа измеряет некоторые параметры сетей, выбранные разработчиками, и записывает результаты в отдельный файл. Создатели Dramavis постепенно меняли свои взгляды на то, какие аспекты сетей нужно измерять. Требовалось добавлять новые функции и продолжать отлаживать уже существующие. Постепенно программа стала слишком объемной и сложной, ее поддержка требовала больших ресурсов. В то же время значительной пользы для исследований изменения функционала не приносили: существует слишком много подходов к изучению социальных сетей драмы, невозможно учесть их все в одной программе. По признанию разработчиков, усложнившееся техническое обслуживание Dramavis стало отвлекать их от самих исследований [1]. Тогда было принято решение закрыть проект и создать новое решение с учетом предыдущих ошибок. Так появился DraCor.
Функционал DraCor
DraCor можно использовать двумя способами: не только напрямую через API, но также и с помощью веб-интерфейса. Возможности API несколько шире, но его использование требует хотя бы минимальной работы с кодом. Для знакомства с проектом вполне достаточно обращения к его сайту — dracor.org.
Итак, что можно найти на веб-странице? Во-первых, несколько интересных разделов с руководствами пользователя и общей информацией о различных аспектах проекта. Во-вторых — на сайте есть страничка с фирменным мерчем.
![](https://sysblok.ru/wp-content/uploads/2021/08/image3.jpg)
Однако главное — вкладка с корпусами. На странице каждого из них размещен список всех входящих в корпус текстов, которые можно отсортировать по различным параметрам (году создания, автору, названию, источнику текста, количеству персонажей и др.). Также на этой странице можно найти по названию интересующее пользователя произведение.
![](https://sysblok.ru/wp-content/uploads/2021/08/image6.png)
Следующий уровень сайта — страницы отдельных пьес. Помимо полного текста на вкладках указаны метрики социальной сети произведения, ее визуализация, список персонажей, отношения между ними.
![](https://sysblok.ru/wp-content/uploads/2021/08/image4.png)
![](https://sysblok.ru/wp-content/uploads/2021/08/image2.jpg)
Отдельного внимания заслуживает график распределения речи персонажей, который через интерфейс можно построить по 3-м разным методикам: Сапогова, Ярхо и Трильке / Фишера и др.
![](https://sysblok.ru/wp-content/uploads/2021/08/image1.png)
Наконец, на странице пьесы доступно скачивание полного текста произведения; ремарок и речи персонажей по отдельности; данных о социальной сети пьесы (в разных форматах); а также списка персонажей и связанных данных.
![](https://sysblok.ru/wp-content/uploads/2021/08/image7.png)
Дополнительные инструменты
Проект включает в себя не только корпуса драматических текстов. В его рамках также разрабатываются инструменты, помогающие обучать цифровым методам работы с драмой. Среди них — Easy Linavis (инструмент для легкого ручного кодирования любых пользовательских данных в виде графа) и DraCor Shiny app (альтернативный веб-интерфейс на shiny с большим количеством интерактивных сетевых метрик).
Easy Linavis, или ezlinavis — приложение, которое позволяет легко визуализировать социальные сети. Достаточно просто ввести в интерфейс имена говорящих персонажей, распределив их по структурным частям произведения (действиям, актам и т. д.). Приложение нарисует граф сети, учтя вес каждой вершины и ребра, автоматически расположит вершины наиболее удобным образом. Гипотетически, с помощью Ezlinavis можно кодировать и нехудожественные сети, например, контакты с друзьями и др.
DraCor Shiny app также служит для визуализации социальных сетей, однако это приложение использует не пользовательские данные, а информацию из DraCor. У DraCor Shiny app больше возможностей по настройке внешнего вида получившейся схемы — в приложении можно изменить цвет вершин, их величину и т. д. Кроме того, в программе можно увидеть различные параметры пьесы, такие как вес вершин, среднюю дистанцию между ними и др.
Практическая польза проекта
DraCor уже помог провести реальные исследования. О некоторых из них можно прочитать в материалах «Системного Блока»:
- Праздник или смерть? Драма в сети! — Системный Блок{ъ}
- Смерть в сети: зачем литературоведам графы — Системный Блок{ъ}
- Соцсети русской драмы, часть I: основы сетевого анализа — Системный Блок{ъ}
- Соцсети русской драмы, часть II Ревизор vs. Городничий: кто же главный герой? — Системный Блок{ъ}
Команда разработчиков
В команде проекта люди из многих стран — в том числе Германии, Австрии, Испании и России. Среди российских разработчиков DraCor — преподаватели Высшей школы экономики:
- Франк Фишер — один из создателей DraCor; главный редактор сайта проекта — dracor.org; редактор немецкого и русского корпусов, также занимается технической поддержкой корпусов на других языках; разработчик приложения ezlinavis;
- Даниил Андреевич Скоринкин — редактор русского корпуса пьес, также занимается разметкой текстов для RusDraCor; сейчас разрабатывает корпус татарской драмы;
- Борис Валерьевич Орехов — соредактор сайта dracor.org, занимается технической поддержкой нескольких корпусов; сейчас разрабатывает корпус башкирской драмы;
- Иван Сергеевич Поздняков — создатель DraCor Shiny app.
Благодаря стараниям этих людей научное сообщество получило надежный и удобный источник данных для исследований драмы.
Источники
[2] APIs Are Like User Interfaces—Just With Different Users in Mind
[3] dramavis