diglossa.js - назад к тексту

Jan 25, 2019

diglossa.js — назад к тексту
Быков М.В.
г. Москва
http://diglossa.org
http://diglossa.org/diglossa.js

abstract:

diglossa.js построена на голом исходном авторитетном тексте, в который не вносятся изменения и который хранится в системе контроля версий (github.com). К тексту последовательно пристраиваются слои (layers), привязанные к конкретному месту текста якорями. Таким образом можно получить результат любой сложности, сохранив исходный текст в неприкосновенности. Добавочными слоями к тексту могут быть: предисловия, комментарии, пагинации, параллельные тексты, логические разметки, примечания издателей, любая мета-информация и т.п. Этот подход дает возможность использования свободной лицензии на результат при ограниченных лицензиях на исходные тексты. Использовать diglossa.js не сложнее, чем хорошо известный FB2-Reader, подготовка текста занимает минуты.

Лирика

Носители письменного текста начинались с глиняных табличек и листьев растений, сейчас носители тех же самых текстов превратились в энтерпрайз-системы с джавой, обслуживаемые коллективами ученых и айтишников. Тексты были редки и дороги, и сейчас доступны обрывки и некачественные списки, фейки. Собственно авторитетные тексты так же редки и еще более дороги, чем в момент своего появления. Тексты обрастают грязью, как корабли ракушками. Создаются все более сложные системы, начиная с MS-Word. Текст как просто текст в обороте отсутствует. Даже просто скопировать аккуратно текст обычными средствами невозможно – если нужно аккуратно скопировать (например ssh-ключ), приходится использовать специальную утилиту – ssh-copy-id. А кроме нее, ничего для работы с просто текстом нет.

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

Сами слова обрастают грязью, как корабли ракушками. В 5 веке китайский монах Сюаньцзан написал трактат “ Записки о западных странах”, в 15 веке У Чэнъэнь написал его пересказ “Путешествие на Запад”, толстый том, один из 4 классических китайских романов, со всеми тантрическими чудесами, демонами и заклинаниями, в 21 веке в Голливуд в Китае снимает серию блокбастеров “Путешествие на Запад – покорение демонов” с миллиардными оборотами. О взрывном увеличении потока фейков даже и говорить скучно. Грязью обрастает любое слово, видимо, это закон природы.

Недавно еще в почте использовался текст, сейчас это без исключения html. Текста без www-urlencoded больше нет. Текст, как сказал когда-то Ницше, умер.

Технические подробности

Утилита diglossa.js имеет целью работу с текстом. Можно использовать ее простейшим образом. Можно взять любой табличный редактор, типа MS-Excel, и в нем расположить тексты (один или более) в колонках, сохранить файл и открыть его в Диглоссе. Читатель сразу получает удобный интерфейс, полнотекстовый поиск и интеграцию с утилитами типа Морфея (при проводе мышью над словом сразу получает результат обработки слова в Морфее). В тексты можно вносить исправления и сразу видеть результат. Убедившись, что результат вам нравится, то есть смыслы всех текстов в каждой строке соответствуют друг другу, можно опубликовать результат в вебе в один клик.

Но кроме этого, можно также опубликовать исходные тексты, в виде текстов, в специальном репозитории на github.com, или в любой другой системе контроля версий. Следующий читатель может загрузить любой из текстов, или все, уже из репозитория.

Вариант с табличным редактором добавлен для удобства работающих с текстами. Основным же вариантом является первичное чтение текстов из файлов дерева директорий, или из сети. Таким образом можно получить структуру текста любой сложности. Работа начинается с чтения файла манифеста, any-name.json, в котором есть единственное обязательное поле: путь к дереву директорий. Или адрес ресурса. Может быть добавочный the-same-name-local.json, который содержит сведения, которые публиковать не нужно.

Если все ресурсы указаны как удаленные, для распространения (публикации) результата достаточно опубликовать только файл манифеста. И затем открыть его в Диглоссе.

К исходному тексту могут быть добавлены не только параллельные тексты целиком, но и любой текст к любому месту в исходном тексте. Это достигается системой слоев (layers) и якорей. Собственно, параллельные тексты являются одним из примеров слоя. Другие примеры: предисловия и справочники, комментарии, пагинации, логические разметки, картинки и примечания издателей, любая мета-информация и режим учебника, когда исходный текст представляется вставками, цитатами в обрамлении нового текста. (В публикуемых пакетах по большей части все эти возможности пока не реализованы). Использовать сложную систему слоев без необходимости не обязательно. Например, в большинство текстов логическая разметка может быть внесена попросту в текст. Сейчас нет возможности добавлять в Electron.js плагины, но в близком будущем обработку слоев можно будет добавлять по желанию.

Поскольку используются только известные и популярные web-технологии (Node.js, Electron.js и CouchDB), то можно так же добавить свои стилевые таблицы. CouchDB нужен потому, что Diglossa.js и Morpheus.js работают в связке, и имеют возможность создания на лету локального словаря для конкретного текста или группы текстов. При этом читатель будет иметь возможность вносить добавления и исправления в словари на лету. Следовательно, нужна система синхронизации между всеми мобильниками, десктопами и серверами, что и обеспечивает CouchDB. Кроме этого, Node.js и CouchDB используют JSON как основную структуру представления данных, то есть дерево. А в языкознании все данные имеют структуру дерева. Почему обычно в этих задачах используется Питон, для меня загадка.

При этом исходный текст в обычной работе никак не затрагивается. А если в него действительно вносится изменение (исправляется опечатка), в репозитории результат появится в виде git merge request, и может быть принят или отклонен.

Лицензия

Таким образом, появляется возможность использовать свободную лицензию на результат. Старожилы конференции помнят, что несколько лет назад обсуждалась возможность использования свободных лицензий для художественных, а не программных тестов, музыкальных и изобразительных произведений и т.д. Вывод был сделан не утешительный, – свободные лицензии лицензии в художественных текстах использовать невозможно, поскольку сама их художественность связана с личностью автора, и любое внесение изменения автоматически нарушит не отменяемое никакой лицензией авторское право. В случае же данного подхода появляется пространство для работы над текстом, не вносящее изменений в текст. И если лицензия исходного текста позволяет только его распространение, то он может быть включен в результат, сам имеющий свободную лицензию.

Лирика

Таким образом, diglossa.js является прообразом библиотеки будущего, когда распространяется не книга в переплете, а только лишь необходимая часть текста с необходимым аппаратом. Вспомните здесь об усилиях, предпринимаемых государством по сохранению системы заскорузлых бумажных библиотек. Превращению простого текста в чудовищные информационные системы может быть противопоставлена культура распространения авторитетного текста со свободной лицензией. А касте служителей информационных систем — сообщество грамотных читателей.