Проект по созданию российской базы знаний

193bc0aa0eff9d078fb5bcbedfb3c991.jpg

Здесь был большой пост, который состоял из нескольких частей, но он подвергся цензуре и был удален за «инициирование политических дискуссий». Поэтому я решил создать новый пост, содержащий только одну из его частей.

В условиях усиливающейся изоляции России, тем, кто здесь остался, как никогда, нужна актуальная информация, знания и технологии. Не сказать, чтобы наша наука и раньше была глубоко интегрирована в мировую, но сейчас она практически откололась от мира. Количество современных знаний на русском языке не идет ни в какое сравнение с материалами на английском языке, а переводится лишь малая часть, и то, далеко не сразу. Кроме того, доступ к научной информации многим совсем не по карману, специализированная литература даже в электронной версии может стоить сотни долларов за книгу из-за жадности издателей-монополистов, а доступ к одной научной статье на Sciencedirect обходится в 30$, что является неподъемной стоимостью даже для некоторых западных университетов, потому что в процессе работы учёным нужен доступ к большому количеству статей. К счастью, есть такие ресурсы, как Sci-Hub и Library Genesis. На данный момент второй заблокирован в России, но в текущих условиях я призываю снять с него блокировку, так как это огромная бесплатная библиотека, содержащая более 2 миллионов книг, которые могут оказать огромный вклад в развитие нашей страны.

Еще одной проблемой является то, что, если смотреть на ситуацию реально, уровень владения английским, достаточный для самостоятельного чтения и получения знаний из литературы, у россиян, в целом, очень низкий. В результате, возникает огромный разрыв между теми знаниями, которые доступны среднему россиянину и носителем английского языка. Английский на данный момент является языком международного общения и науки. Но в сегодняшних реалиях заставлять всё население учить английский, чтобы иметь доступ к современным знаниям, не является рациональным. Поэтому наличие платформы, где каждый гражданин России, будь то школьник, студент, ученый или специалист в любой сфере, мог бы структурированно получать актуальную информацию в каждой области знаний на русском языке, мне видится одним из важнейших факторов развития страны.

Несколько лет назад у меня возникло видение такой платформы на основе базы Library Genesis. (Хочу отметить, что я не являюсь частью команды Library Genesis и не принимаю участия в распространении материалов, защищенных авторским правом, без разрешения их правообладателей). Первостепенной задачей является автоматизированная классификация всех книг, присутствующих там. Часть того, что я успел сделать, доступна здесь, но, в тот момент, я отложил эту идею на будущее, так как это крупный некоммерческий проект, который требует как трудозатрат, так и вычислительных мощностей и приличного по объёму хранилища данных, чтобы выкачать десятки терабайт книг и подвергнуть их автоматизированной обработке.

Library Genesis удобна только в том случае, если при поиске заранее известно название книги или автор. У каждой книги есть такой идентификатор, как ISBN (их может быть несколько), но в базе LibGen он присутствует далеко не у всех книг. Метаданные книг могут тоже быть неправильными или неполными. Соответственно, одной из задач является написание скриптов, извлекающие ISBN из файлов книг в любых форматах. Я писал такие скрипты для PDF и ePub файлов, результат получается очень приличный в плане точности. Зная ISBN, есть множество сервисов, позволяющих получить полные метаданные любой книги, также библиотека конгресса США (крупнейшая в мире) предоставляет полный набор всех метаданных в разных форматах. Про библиотечные форматы и модели типа BIBFRAME можно написать целую отдельную статью, поэтому не буду подробно на этом останавливаться, суть лишь в том, что имея локальную копию всех книг библиотеки Genesis, исправление и обогащение метаданных является лишь вопросом вычислительных ресурсов и может быть произведено автоматически. Получив полную базу всех метаданных, сами книги можно рассматривать отдельно от неё, вопрос их хранения и распространения может решаться любыми способами. Благодаря тому, что в базе метаданных присутствуют хэши всех файлов, любой файл можно скачать по прямой ссылке с любого зеркала, получить через торрент (точнее, через DHT) или через IPFS (как это сейчас реализовано). Для дальнейшей работы понадобится только база метаданных.

Существуют разные системы классификации информации, которые используются в библиотеках, такие как УДК, ББК, DDC, LCC. Каждая их них представляет дерево, в котором могут содержаться более ста тысяч категорий информации, охватывающее все области знаний, от самых широких к самым узким. Пример сильно упрощенного дерева УДК, содержащего лишь 2600 верхних уровней, можно посмотреть здесь. Полные таблицы большинства систем отсутствуют в свободном доступе или в машиночитаемом виде, так как на предоставлении доступа к ним каждой библиотеке зарабатываются большие деньги. Наиболее перспективным вариантом является перевод классификации библиотеки конгресса США (LCC) в машиночитаемую форму, так как она свободно доступна в формате PDF. Скрипт, который я написал для этого, и результат конверсии можно посмотреть по ссылке. На данный момент скрипт требует доработки, так конверсия происходит не на 100% корректно, хотя и показывает хороший результат.

Каждой книге (как печатной, так и электронной версии) в каждой крупной библиотеке мира присвоен один или несколько кодов в рамках используемых этой библиотекой систем классификации. Существует такая организация, как OCLC, к которой подключены большинство мировых библиотек, и которая предоставляет API, которое при отправке в него ISBN книги, выдает коды классификации в системах LCC и DDC, назначенные соответствующей книге во всех библиотеках, подключенных к системе. У некоторых книг в базе уже присутствуют коды классификации, а дамп метаданных библиотеки конгресса содержит код LCC для каждой книги, что позволяет полностью обогатить базу по этой системе без необходимости вызывать метод API на сайте OCLC более 2 миллионов раз.

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

Но каталог книг — это всего лишь начало. По каждому коду классификации автоматически может создаваться пространство с разнообразным функционалом. Среди возможностей:

  • Членство в пространствах. Любой пользователь выбирает коды классификации в зависимости от тем, которые представляют для него интерес — профессиональный, любительский или академический, и становится участником каждого выбранного пространства.

  • Подписка на новые книги и статьи. При появлении в библиотеке новых книг с соответствующим кодом, пользователям, состоящим в сообществе соответствующего пространства, приходит уведомление.

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

  • Роли пользователей. Кураторы могут назначать пользователям некоторые роли, которые будут открывать возможность различных действий. Также роли могут предоставляться автоматически в зависимости от определенных действий пользователя или данных о его статусе из других внешних систем.

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

  • Редактирование сообществом. Любые члены сообщества могут предлагать свои правки в любых страницах и в любых компонентах, доступных для редактирования. Одобряют или отклоняют правки пользователи, имеющие соответствующие права в пространстве. Механизм примерно такой же, как редактирование страниц в Википедии и пулл-реквесты на GitHub.

  • Рецензии и метки. Пользователи могут писать рецензии на книги, если рецензия написана куратором или пользователем, имеющим роль эксперта в соответствующем пространстве, она будет выделяться особы образом. Также такие пользователи могут помечать книги в своем пространстве такими метками как «учебник», «энциклопедия», «сборник статей», «современный стандарт», «устаревшее», и т.д.; что позволить сразу видеть наиболее актуальные книги по конкретной теме.

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

  • Глоссарий и словарь. В рамках пространства должен существовать список всех терминов, имеющих отношение к соответствующей области, с толкованием на русском языке и обязательным английским вариантом, использующимся в литературе. Другие языки могут быть добавлены по мере необходимости. Ответственность за те или иные термины может передаваться между пространствами одного или разных уровней.

  • Перевод. Всё содержимое книг и статей автоматически подвергается машинному переводу на русский язык, учитывая словари соответствующих пространств. После этого пользователи могут проверять и редактировать перевод вручную. После проверки пользователями, имеющими соответствующие роли, информация помечается как имеющая достоверный перевод.

  • Новости. Пользователи, имеющие соответствующие роли, могут вести в пространстве обновляющиеся списки новостей, относящихся как к деятельности самого пространства, так и к информации, размещенной и находящейся в ведении данного пространства.

  • Обсуждения. В рамках пространства должна существовать площадка для обсуждения его участниками вопросов, относящихся как к деятельности самого пространства, так и к информации, размещенной и находящейся в ведении данного пространства.

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

  • Курсы. В рамках пространств, на основе общей методики, с привязкой к структурированной информации, пользователями, обладающими соответствующими ролями, создаются образовательные курсы. В пространстве может быть один или более курсов. Общая методика включает в себя формирование нескольких групп целевой аудитории — дети, подростки и молодежь, взрослые. Для каждой из групп должны быть единые стандарты оформления, проверки знаний, требований к стилистике и обучающим материалам. В каждом пространстве обязательно должен быть курс для взрослых, содержащий только сухую конкретную информацию, без упрощений. Присутствие курсов для подростков и молодежи тоже желательно в каждом пространстве, они должны содержать всю информацию из курсов для взрослых, но с дополнительными пояснениями, развлекательными и игровыми моментами, мультимедийным контентом, жизненными примерами, и содержать элементы, направленные на создание и поддержание интереса к изучаемой теме. Курсы для детей должны создаваться только в тех пространствах, где это имеет смысл, и давать упрощенную информацию, используя методы из курсов для подростков и молодежи, но с учетом детского уровня развития и психологии. По мере появления новой информации в пространстве, курсы должны обновляться.

  • Образовательные программы. Для каждого курса должны быть определены зависимости, то есть курсы, которые должны быть пройдены перед возможностью прохождения этого курса. Формируется набор общеобразовательных программ разных уровней, а также различных специальностей, после чего для каждой из них определяется набор курсов, которые необходимо успешно завершить для овладения программой. После выбора программы, пользователям показывается дерево зависимостей между курсами, предлагаются разные форматы прохождения (параллельно или последовательно) и расписания, влияющего на интенсивность занятий. Также должна быть возможность свободного прохождения курсов в своём темпе в любое время. Пройденные курсы взаимозачитываются между программами, что позволяет сменить программу во время ее освоения или освоить дополнительные программы без повторного прохождения курсов.

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

  • Единая информационная среда. Портал должен функционировать как в виде сайта в сети «Интернет», так и в виде приложения на всех доступных платформах, а также обеспечивать возможность непрерывного обучения и получения актуальной информации на протяжении всей жизни.

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

Данный проект может быть полностью реализован на общественных началах без помощи и поддержки от государства, а после того, как он начнёт работать и показывать результаты, можно уже выдвигать предложения по официальному использованию этого проекта в науке и образовании. Разработка такого портала технически не является особо сложной, а успешный запуск, привлечение пользователей и налаживание работы позволит решить многие проблемы, стоящие перед нашим обществом, и обеспечить развитие нашей страны во всех отраслях беспрецедентными темпами. Поэтому я приглашаю всех желающих, особенно тех, кто сейчас уже занят развитием и поддержкой Library Genesis, принять непосредственное участие в воплощении этой идеи в жизнь здесь.

Если кого-то заинтересовала эта идея, подписывайтесь на мой телеграм-канал, там будут публиковаться обновления, если проект будет развиваться. А еще, там есть остальные части прошлого варианта статьи.

© Habrahabr.ru