Текстобзор: Das Scharwerk
15.10.2022
Описание
Das Scharwerk — программа для вычитки книг сделанная для оцифровки и вычитке Капитала на украинском языке.
Код проекта открыт и находится в репозитории на GitHub. Описание технических особенностей проекта из репозитория:
- Rails for backend and Angular 1 for frontend
- We use github as text storage, and version control system
- Login via Facebook only
- For background processing we use Sidekiq(it commits texts to github asynchronously)
Система написана на Ruby с использованием фреймворка Ruby on Rails, для фронта используется Angular. Запустить систему не удалось, простого механизма разворачивания в виде Docker-образа нет, для ручного разворачивания тоже нет полной документации. Так как рабочего контура в открытом доступе тоже нет, то по внешнему виду можно судить только по скриншоту из репозитория.
Внешний вид стандартный для таких систем (похожий, например у Distributed Proofreaders) — редактор разделен на две области: скан страницы из книги и область для исправления опечаток. Слева панель с кнопками для быстрого ввода типографических элементов.
Результаты вычитки хранятся на GitHub. Использование системы контроля версий для хранения результатов — очень прогрессивный подход.
База данных PostgreSQL тоже используется в проекте для хранения промежуточных результатов. Схему можно рассмотреть через модели ORM, размешенные в коде проекта.
create_table "pages", force: :cascade do |t|
t.string "path"
t.text "text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "task_id"
t.integer "status", default: 0, null: false
end
create_table "restrictions", force: :cascade do |t|
t.integer "user_id"
t.integer "task_id"
end
create_table "tasks", force: :cascade do |t|
t.integer "status", default: 0, null: false
t.integer "stage", default: 0, null: false
t.integer "part", default: 0, null: false
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "order"
t.string "path"
t.integer "build", default: 0, null: false
t.string "commit_id"
end
Основаня таблица — страницы (pages
) с полями для хранения адреса скана (path
) и вычитанного текста (text
). Таблицы task
и restrictions
, вероятно, применяется для управления вычиткой, чтобы у разных участников не пересекались задачи по вычитке или форматированию, возможно, эти таблицы связаны с issue на Github.
Такая простая схема возможна из-за того что база данных применяется в связке с системой контроля версий. Например, нет необходимости хранить в БД историю изменений, ведь по идентификатору коммита (commit_id
) можно сделать ссылку по которой будут видны различия в двух версиях через GitHub.
Вычитка происходит в формате LaTeX. Этот подход хорош, если поставлена задача получить хороший PDF файл подходящий для печати или публикации. LaTeX ближе к облегченным форматам разметки чем HTML и его недостатком для текстологической работы является только значительная концентрация на визуальном оформлении, необходимая только если требуется печать книги.
Краткое описание рабочего процесса по вычитке из репозитория:
Book digitization workflow::
- Set up. Admin load book screenshots and raw scanned text.
- Proof reading. On this stage, users compare text in editor with scans.
- Latex markup. The text editor contain basic latex commands, for more specific tasks like tables use pure latex.
Результаты работы
Результаты работы находятся отдельном репозитории. В каталоге tex находятся исходники книг в LaTeX, там же есть файл readme.md с инструкцией по сборке PDF. Для сборки используется образ с Docker с LaTeX и сборка автоматизирована с помощью bash-скриптов. Три тома капитала удалось успешно собрать по описанной в readme инструкции.
Фрагменты из готовых PDF:
Проделанная работа посвящена Андрею Речицкому.
Андрію Річицькому
Присвячується Андрію Річицькому (справжнє ім’я — Пісоцький Анатолій Андрійович), видатному українському вченому, перекладачеві та політичному діячу. В 1920-х роках він почав працювати над першим і єдиним українським перекладом «Капіталу» Маркса з німецької, проте встиг завершити лише перший том. Репресований у 1934 році, після чого його ім’я не згадувалося у наступних виданнях «Капіталу» зовсім, попри те, що вони базувалися на його роботі. Був реабілітований у 1990.
Книги выглядят почти законченными. Корректировка ещё продолжается: есть незакрытые задачи и свежие коммиты (на октябрь 2022).
Несмотря на наличие инструкции для сборки PDF, оформление репозитория с книгами имеет проблемы: ясные только авторам пометки TODO, файлы нужные только для экспериментов, отсутствует инструкция для тех кто хочет присоединиться к работе. Вероятно, как и для основного репозитория, это связано с отсутствием необходимости привлекать сторонних людей к проекту.
Заключение
Техническая составляющая Das Scharwerk значительно лучше развита чем у большинства аналогичных проектов: используются современные и подходящие технологии. Более того, по сравнению со сходным проектом Весь Тостой в один клик, видно что авторы хотят получить качественный общественнополезный результат, а не просто выполнить проект поставленный руководством.
Ограничениями текущего проекта является его направленность на одну книгу — оцифровку Капитала. Из этого исходят недостаточная документированность, отсутствие инструкций для новых участников. Если доработать систему Das Scharwerk для более простого разворачивания и оформить документацию, то, скорее всего, она может быть полезной для сходных задач — получение вычитанных копий книг или журналов в LaTeX с целью дальнейшего распространения или печати.
Один из особых недостатков — использование Facebook для размещения материалов связанных с проектом (посмотреть их не удалось) и для авторизации в системе. Труд, направленный на обобществление результатов труда, должен как можно меньше зависеть от закрытых компонентов не говоря уже о требования к информационной безопасности.