Текстобзор: Das Scharwerk

15.10.2022

Описание

Das Scharwerkopen in new window — программа для вычитки книг сделанная для оцифровки и вычитке Капитала на украинском языке.

Код проекта открыт и находится в репозитории на GitHubopen in new window. Описание технических особенностей проекта из репозитория:

  • 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)

Система написана на Rubyopen in new window с использованием фреймворка Ruby on Railsopen in new window, для фронта используется Angularopen in new window. Запустить систему не удалось, простого механизма разворачивания в виде Docker-образаopen in new window нет, для ручного разворачивания тоже нет полной документации. Так как рабочего контура в открытом доступе тоже нет, то по внешнему виду можно судить только по скриншоту из репозитория.

Внешний вид стандартный для таких систем (похожий, например у Distributed Proofreaders) — редактор разделен на две области: скан страницы из книги и область для исправления опечаток. Слева панель с кнопками для быстрого ввода типографических элементов.

Результаты вычитки хранятся на GitHub. Использование системы контроля версийopen in new window для хранения результатов — очень прогрессивный подход.

База данных PostgreSQLopen in new window тоже используется в проекте для хранения промежуточных результатов. Схему можно рассмотреть через модели ORMopen in new window, размешенные в коде проекта.

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, вероятно, применяется для управления вычиткой, чтобы у разных участников не пересекались задачи по вычитке или форматированию, возможно, эти таблицы связаны с issueopen in new window на Github.

Такая простая схема возможна из-за того что база данных применяется в связке с системой контроля версий. Например, нет необходимости хранить в БД историю изменений, ведь по идентификатору коммита (commit_id) можно сделать ссылку по которой будут видны различия в двух версиях через GitHub.

Вычитка происходит в формате LaTeXopen in new window. Этот подход хорош, если поставлена задача получить хороший PDF файл подходящий для печати или публикации. LaTeX ближе к облегченным форматам разметки чем HTML и его недостатком для текстологической работы является только значительная концентрация на визуальном оформлении, необходимая только если требуется печать книги.

Краткое описание рабочего процесса по вычитке из репозитория:

Book digitization workflow::

  1. Set up. Admin load book screenshots and raw scanned text.
  2. Proof reading. On this stage, users compare text in editor with scans.
  3. Latex markup. The text editor contain basic latex commands, for more specific tasks like tables use pure latex.

Результаты работы

Результаты работы находятся отдельном репозиторииopen in new window. В каталоге texopen in new window находятся исходники книг в LaTeX, там же есть файл readme.mdopen in new window с инструкцией по сборке PDF. Для сборки используется образ с Docker с LaTeXopen in new window и сборка автоматизирована с помощью bash-скриптов. Три тома капитала удалось успешно собрать по описанной в readme инструкции.

Фрагменты из готовых PDF:

Проделанная работа посвящена Андрею Речицкомуopen in new window.

Андрію Річицькому

Присвячується Андрію Річицькому (справжнє ім’я — Пісоцький Анатолій Андрійович), видатному українському вченому, перекладачеві та політичному діячу. В 1920-х роках він почав працювати над першим і єдиним українським перекладом «Капіталу» Маркса з німецької, проте встиг завершити лише перший том. Репресований у 1934 році, після чого його ім’я не згадувалося у наступних виданнях «Капіталу» зовсім, попри те, що вони базувалися на його роботі. Був реабілітований у 1990.

Книги выглядят почти законченными. Корректировка ещё продолжается: есть незакрытые задачиopen in new window и свежие коммиты (на октябрь 2022).

Несмотря на наличие инструкции для сборки PDF, оформление репозитория с книгами имеет проблемы: ясные только авторам пометки TODO, файлы нужные только для экспериментов, отсутствует инструкция для тех кто хочет присоединиться к работе. Вероятно, как и для основного репозитория, это связано с отсутствием необходимости привлекать сторонних людей к проекту.

Заключение

Техническая составляющая Das Scharwerk значительно лучше развита чем у большинства аналогичных проектов: используются современные и подходящие технологии. Более того, по сравнению со сходным проектом Весь Тостой в один клик, видно что авторы хотят получить качественный общественнополезный результат, а не просто выполнить проект поставленный руководством.

Ограничениями текущего проекта является его направленность на одну книгу — оцифровку Капитала. Из этого исходят недостаточная документированность, отсутствие инструкций для новых участников. Если доработать систему Das Scharwerk для более простого разворачивания и оформить документацию, то, скорее всего, она может быть полезной для сходных задач — получение вычитанных копий книг или журналов в LaTeX с целью дальнейшего распространения или печати.

Один из особых недостатков — использование Facebook для размещения материалов связанных с проектом (посмотреть их не удалось) и для авторизации в системе. Труд, направленный на обобществление результатов труда, должен как можно меньше зависеть от закрытых компонентов не говоря уже о требования к информационной безопасности.

Последниее изменение: