Об одном подходе к созданию электронных библиотек

Введение.

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

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

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


Когда мы приходим в библиотеку и хотим ознакомиться с литературой по какой-то теме, мы смотрим каталог библиотеки, находим соответствующий теме раздел каталога, просматриваем список литературы, представляющий данную тематику. Далее среди этого списка находим книги, которые, исходя из названия, наиболее близко соответствуют нашей теме. По аннотациям к книгам  выбираем   какую-то конкретную книгу или группу книг. Затем уточняем наш поиск непосредственным знакомством с каждой из отобранных книг. При этом знакомство с книгой выглядит следующим образом. Сначала читаем оглавление книги. Если мы не находим данной темы, возможно из-за слишком узкой темы ( научного понятия, термина и т.п.), то пытаемся заглянуть в предметный указатель книги. Если наш поиск и здесь не увенчался успехом, мы  продолжаем поиск среди других выбранных книг или вновь обращаемся к каталогу библиотеки.

Еще несколько примеров, подчеркивающих важность просмотра оглавления книги и ее предметного указателя.
1) Книжный интернет магазин "
Amazon" в рубрике описания книги "Search inside this book" дает возможность ознакомиться оглавлением и предметным указателем книги;
2) На странице
books.google.com для ознакомления с книгой всегда предлагают ознакомится с ее оглавлением, а иногда с ее предметным указателем;
3) Когда автор этих строк сообщает своим коллегам о появлении новой книги, то в ответ всегда слышит - "А покажите, пожалуйста, оглавление этой книги "


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

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

Таким образом, описанный выше поиск по электронной библиотеке соответствует ручному поиску по каталогу библиотеки.

Как   автоматизировать просмотр оглавлений и предметных указателей каждой книги.  в случае электронной библиотеки ?

Оказывается  это можно сделать, если воспользоваться  htm-интерфейсом, который создается программой DJVUmark. Основу этого интерфейса составляют тексты оглавления и предметного указателя, представленные в файлах  формата htm, в которых номера страниц в рубриках оглавления и номера страниц в предметном указателе, указывающих на место расположения данного терма(понятия)
в книге, заменены на гиперссылки к соответствующим страницам книги.  При  переходе по такой ссылке, можно открыть книгу на заданной странице.

Сейчас DJVUmark htm-интерфейс  создает для электронных книг в формате djvu и pdf . Файлы htm-интерфейса помещаются в отдельную папку, одноименную с именем соответствующего файла электронной книги. Первоначально интерфейс создавался только для файлов формата djvu, когда для этих файлов не было вьюверов и  инструментов для внедрения закладок. Интерфейс создавался как средство навигации по файлу djvu,  используя оглавление и предметный указатель, включая кумулятивные предметные указатели для многотомных файлов типа энциклопедий. Недавно, когда начали использовать этот интерфейс при создании библиотеки, в программе DJVUmark. была добавлена функция создания такого интерфейса и для файлов формата pdf для режима OFF-Line..

При внедрении закладок в файлы djvu  возникает задача синхронизации номеров страниц в файле djvu с номерами страниц, напечатанными в книге. Для этих целей в DJVUmark используется  htm-интерфейс. Очевидно,  удобство работы с книгой во многом определяется возможностью хорошей навигации по этой книге. Поэтому в DJVUmark текст закладок кроме текста оглавления содержит и текст предметного указателя.
Насколько нам известно, только программа DJVUmark обладает этим свойством.  Препятствием на пути использования предметного указателя в качестве закладок является наличие в строках предметного указателя нескольких ссылок на страницы, что недопустимо в закладках. Это можно обойти, если строку указателя рассматривать как структурный блок, состоящий из нескольких строк. 

Пример. текст строки указателя "Plane wave, 22–24, 29, 32–34, 37, 39–41, 51,"

Такая строка на языке HTML может быть представлена в виде следующей структуры:

<li><a href="#39 "> Plane wave, 22</a></li>
<ul> начало блока
<li><a href="#46 "> 29</a></li>
<li><a href="#49 "> 32</a></li>
<li><a href="#54 "> 37</a></li>
<li><a href="#56 "> 39</a></li>
<li><a href="#68 "> 51</a></li>
</ul> конец блока

Такая запись блочной структуры используется в программах EmbedBookmarks-1 и BookmarkTool-2.0 при внедрении закладок в файл DJVU.

На следующей картинке показаны четыре строки текста из предметного указателя и как они
выглядят в различных форматах.

При наличии к электронной книге ( формата djvu или pdf ) htm-интерфейса  для работы с ней можно использовать два инструмента: соответствующие вьюверы или плагины интернет эксплорера. Когда к электронной книге обращаются непосредственно, можно использовать вьювер (WinDjView или  Acrobat Reader) ,  при обращении к книге через гиперссылку в файле htm всегда используется плагин интернет эксплорера.

На  иллюстрации, представленной ниже, слева показан скриншот обращения к файлу djvu с помощью  WinDjView, справа показано обращение к этому же файлу через htm-интерфейс. Путем "клика" изображение можно увеличить.

Ниже изображен скриншот обращения к htm-интерфейсу к файлу pdf .

 

 
Итак, пара электронная книга ( формат Djvu или Pdf ) + htm-интерфейс к этой книге - прекрасный строительный материал для библиотеки электронных  книг.
Простая коллекция таких пар в сочетании с функциями поиска текстовой информации общего назначения, например,  функции поиска в ОС Windows или функции, имеющиеся в файловых менеджерах типа Frecommader, Total Commander и т.п превращается в полноценную электронную библиотеку с эффективным поиском информации, недоступным большинству современных электронных библиотек.

Пример поиска "three-dimensional spectrum" в электронной библиотеке по оптике с использованием Total Commander

Этот контекст найден в двух книгах.

Первый файл - второй том справочника Totzeck Michael , Gross Herbert, HANDBOOK OF OPTICAL SYSTEMS : Physical_Image_Formation,
Второй файл - первый том справочника The Infrared & Electro-Optical Systems Handbook: Vol.1: Zissis G.J. (editor), Sources of Radiation (1993)

Открываем первый результат.

Кликаем по гиперссылке 19. Получаем:

Второй результат поиска. Найден контекст в предметном указателе:

Переходим по гиперссылке 170 и открываем

Открываем  закладки этого файла и определяем, к какой книге принадлежит данная  страница.

К сожалению, использование Total Commander  для поиска ключевых слов имеет один существенный недостаток. После просмотра одного результата поиска окно результатов поиска закрывается и для просмотра следующего результата приходится возобновлять поиск. Конечно, лучше использовать специальные программы поиска, например, Search and Replace for Windows.  Заслуживает внимания и использование команды ПОИСК из операционных систем Микрософт Windows.

 Использование  команды ПОИСК  в Windows XP, русская версия.

Наша цель  с помощью команды ПОИСК Windows  XP  выяснить, в папку  M:\add-mart-2012  в период с 06.2011 по 03.2013 не были случайно добавлены книги, в которых обсуждался  термин diffraction.

В меню команды ПОИСК надо заполнить информацию о цели поиска. Там имеется несколько
граф для заполнения.

Рассмотрим некоторые из них:

1) графа - "часть имени файла или имя целиком". В этой графе указываем:
*.cont*.htm


Можно было бы добавить еще и *.index*.htm . Но в данном случае мы ограничимся только оглавлением, поскольку, если ключевое слово упоминается в оглавлении, то это означает, что данное понятие(термин, ключевое слово) серьезно обсуждается в данном месте книги.
В предметный указатель очень часто включают и несущественное упоминание термина на данной странице.

2) графа -"слово или фраза в файле". В этой указываем текст ключевого слова, что мы хотим найте,
например, diffraction

3) графа - "Поиск в". В этой графе есть ниспадающее меню. Открываем его и выбираем "обзор"
Например, выберем папку M:\add-mart-2012, где хранятся файлы пополнения библиотеки OPTICS, созданные в период с 06.2011 по 03.2013.


Заполнение этих трех граф обязательное.


Далее рассмотрим графы, уточняющие поиск.


4) графы - "Когда были произведены последние изменения"
Здесь выберем в качестве примера графу "указать диапазон" и укажем данные для "с" и "по"
с 30.12.2012
по 28.01.2013

 


Итак,  в ходе поиска  выполняем следующее:


1) запускаем команду ПОИСК в меню команды ПУСК
2) заполняем информацию о поиске, как описано выше
3) нажимаем "найти"

Результат поиска. поиска показан в правой части скриншота, представленного выше.
 Из него следуем, что добавлены две книги.

4) кликаем по строке результата поиска и открываем файл *.htm, например, второй файл из списка результатов.
5) в команде броузера НАЙТИ набираем diffraction
6) получаем подсвеченные строки 7 , 7.2 и 7.3, где есть текст "diffraction"
7) раздел " 7 Diffraction Effects and Their Applications 181" расположен на 181 странице файла
Introduction_to_Optics_and_Lasers_in_Engineering.djvu Это следует из текста файла R_d_content....
В данном случае текст "181" есть гиперссылка на 181 страницу книги.
8) кликаем по ссылке 181 и во всплывающем окне On-the-fly

и читаем страницу книги, где расположен текст заглавия раздела " 7 Diffraction Effects and Their Applications 181".


В данном примере первый результат представляет файл формата pdf, второй - djvu.
Отображение страниц, где найдено ключевое слово diffraction осуществлено в броузере OPERA.

Ниже отображение найденной страницы в файле Field_guide_to_lens_design.SPIE(2012).pdf


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

Чтобы из  коллекции пар электронная книга + htm-интерфейс к книге создать настоящую библиотеку  необходимо создать каталог книг библиотеки.

Создание каталога библиотеки


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

Таким образом, при построении библиотеки нами предлагается для целей поиска информации
использовать htm-интерфейс к электронным книгам, а каталог библиотеки создавать как особый bookmarks к файлу-каталогу в формате djvu или pdf.

В дальнейшем будет рассмотрено построение каталога на основе файлов формата  djvu. Причем мы ограничимся случаем, когда о б я з а т е л ь н ы м  условием работы каталога библиотеки, чтобы локальные файлы djvu ( точнее файлы djvu, к которым мы обращаемся непосредственно ) открывались программой WinDjView-05 или более старшей версии.

Выбор этой программы в качестве вьювера файлов djvu не случаен. Пока только эта программа обрабатывает команды перехода к чтению файлов в режиме OFF-Line. Для этого в файле закладок bookmarks.htm должны быть теги типа


<li><a href="path\name_file.extension">* текст, описывающий файл </a></li>
 

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

Для определенности назовем создаваемый файл каталог Catalog_Library.

Файл Catalog_Library.djvu должен иметь не менее двух страниц, чтобы можно было записать файл закладок любой длины. Что записано на этих двух страницах для работы каталога безразлично. Это может быть описание каталога библиотеки или руководство по навигации к данной библиотеке или, наконец, сам структурированный список ( bookmarks.htm ) книг в формате djvu.

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

Синтаксис строки исходного текста закладок для DJVUmark примерно следующий :

<ТЕКСТ1><ПРОБЕЛ><ТЕКСТ2><HREF="NAME.DJVU" ИЛИ HREF="NAME.
PDF" ИЛИ другие типы файлов>

ТЕКСТ1 - это информация о структурной иерархии данной строки:
- число в римской или арабской системах исчисления
- одна из скобок  открытия структуры "{_Т", "{_Ч", "{_С", "{_Г", "{_П"
- одна из скобок  закрытия "}_Т", "}_Ч", "}_С", "}_Г", "}_П"
- "БЛОК_Т", "БЛОК_Ч", "БЛОК_С", "БЛОК_Г", "БЛОК_П"
- структурный номер типа <число><.><число><> и т.д.
- ,наконец, символ "*"
ТЕКСТ2 - это информация о книге. Например: Автор(ы), Название, год издания и т.п

Скобки открытия структуры "{_Т", "{_Ч", "{_С", "{_Г", "{_П"  являются эквивалентами ключевых слов (том, часть, секция, глава, параграф), которые обычно мы встречаем в оглавлениях книг.
Пример.

* Curry C., WAVE OPTICS.Interference and Diffraction, Edward Arnold,Ltd 1957., href="Curry-WaveOptics.pdf"
 

В настоящее время программа DJVUmark программа формирует строку для каталога электронной библиотеки с описанием книги. Такая строка записывается в файл param_<имя файла книги>.txt как комментарий. Строка из примера выше выглядит в этом файла следующим образом:

collection_of_rows_line_of_LibraryCurry= C., WAVE OPTICS.Interference and Diffraction, Edward Arnold,Ltd 1957., href="Curry-WaveOptics.pdf"

Кроме того написаны две утилиты  формирования текста-заготовки для создания каталога электронной библиотеки:

1) collection_of_rows_line_of_Library - эта программа просматривает из заданной папки все папки с htm-интерфейсом и копирует их них строки , содержащие контекст  "collection_of_rows_line_of_Library=" и составляет cписок таких строк в файле collection_of_rows_line_of_Library.txt

2) Form_line_for_Library - эта программа  формирует такой же список, но применяется в тех  случаях, когда папки htm - интерфейса были сформированы были без строки  "collection_of_rows_line_of_Library=" Эта программа сама на основе информации из файлов content_<имя файла книги>.txt и param_<имя файла книги>.txt формирует строку для каталога библиотеки. Сollection_of_rows_line_of_Library.txt - пример.

Итак, мы создали каталог, его структуру представили тегами языка HTML ( файл bookmarks.htm) , как это требуют программы EmbedBookmarks-1 и BookmarkTool-2.0. С помощью любой из этих программ  теперь можно внедрить bookmarks.htm в качестве закладок в файл  Catalog_Library.djvu.

Не будем останавливаться на подробностях  формирования каталога, а дадим ссылки  на файл исходного текста каталога  для программы DJVUmark  и на файл bookmarks.htm.

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

Одним из методов решения этой задачи является преобразование файла bookmarks.htm. в djvu формат и затем использования стандартного механизма поиска WinDjView.

 Для этого файл bookmarks.htm ( это файл желательно( необязательно !) подредактировать : убрать алфавитный авторский указатель, здесь он лишний, улучшить читабельность файла путем редактирования заглавий и т.п. ) помещаем в папку( например, G:/Optics), где расположены файлы библиотеки и с помощью Adobe Acrobat, преобразуем этот файл в pdf формат, т.е. получаем файл bookmarks.pdf.

Затем с помощью плагин ISIToolBox к Adobe Acrobat редактируем параметры Link в файле bookmarks.pdf - превращаем абсолютные ссылки в относительные. Технология примерно следующая: экспортируем Link ( только Link, Bookmark не трогаем !) в текстовый файл. В этом файле с помощью текстового редактора корректируем путь(в нашем примере удаляем контекст"file:///G|/OPTICS/") и обратно импортируем Link в файл bookmarks.pdf

Теперь файл bookmarks.pdf с помощью соответствующей программы типа редактора ( Виртуальный принтер для этих целей не годится !) преобразуем в формат djvu. Сформированный таким образом файл, назовём его Search book.djvu, помещаем  в папку с файлами библиотеки. Далее можно поступим двояким способом.

1) В каталог библиотеки ввести строку " Поиск книг по их титульной информации в каталоге библиотеки, href='Search book.djvu' ". Путем клика по этой строке будет открываться файл Search book.djvu и затем можно использовать  стандартный поиск  вьювера по файлу Search book.djvu:

 

изображение можно увеличить.

Поскольку найденная строка является гиперссылкой, то далее, совершая переход по этой ссылке, открываем найденную книгу.

2) Файл Search book.djvu добавить к файлу Catalog_Library.djvu или в файл Search book.djvu внедрить файл bookmarks.htm и использовать этот файл как файл Catalog_Library.djvu. В последнем случае это означает, что изначально в качестве файла каталога библиотеки можно временно использовать копию любого файла djvu.

Несколько слов о поиске информации по оглавлениям и предметным указателям книг всей библиотеки. Выше были приведены примеры поиска.

В файлах html-интерфейса,  созданного раннимы версиями   программы DJVUmark, пробел представлен следующим набором из 6-ти символов &nbsp; . Поэтому перед помещением папок с html-интерфейсом в библиотеку желательно набор символов &nbsp; заменить на обычный пробел " ". Это легко можно сделать с помощью программы Search and Replace for Windows или текстового редактора файлов.. Это надо сделать для надежности поиска. Системы поиска в интернет броузерах такой управляющий набор символов понимают как пробел, но нет гарантии что другие программы поиска распознают правильно этот набор символов. Например,  функция поиска в Тоtal Commander набор символов &nbsp; при поиске в файлах типа htm(l) не распознает как пробел. В более поздних версиях DJVUmark такой управляющий пробел используется только в начале строки. А это не создает помех для поиска.

Два слова о возврате к каталогу после чтения книги.

Если мы возвращаемся после чтения файла с расширением, отличным от Djvu, то здесь все просто: достаточно закрыть программу чтения файла и мы автоматически возвращаемся к Catalog_Library.djvu

Очевидно, что после чтения файлов Djvu программу WinDjView закрывать нельзя, так как мы выйдем и из Catalog_Library.djvu

Как показала практика, для быстрого возврата в каталог библиотеки после чтение какой-то книги лyчше всего в конце закладок к каждой книге помещать строку перехода к Catalog_Library.djvu. Если файл bookmarks.htm для книг генерируется с помощью программы DJVUmark, то такая строка перехода вставляется опционально.
Если такой строки возврата в закладках нет, лучше всего воспользоваться инструментом File программы WinDjView и выбрать строку "Catalog_Library.djvu"

Описанный выше подход к организации электронной библиотеки был практически опробован при создании трех электронных библиотек, которые были размещены сетевом диске Института . Вот файлы их каталогов:  библиотека COMPUTER_VISION+IMAGE_PROCESSING+PATTERN_RECOGNITION( текстовый файл закладок) и библиотека OPTICS ( текстовый файл закладок )  Файлы Catalog_Library.djvu  для просмотра на сервере не доступны, их надо скачать и смотреть программой WinDjView. Адрес для скачивания   images.


Более полное представление о работе с электронной библиотекой можно получить, посмотрев файл Справка.
Напоминаем, что каталог библиотеки, хранится в закладках к этим файлам. Чтобы их посмотреть, находясь в Интернете, кликните правой клавишей мыши по тексту соответствующего файла Catalog_Library.djvu  и  в  открывшихся окнах выберите строки LAYOUT и OUTLINE

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

В связи с тем, что indirect формат файлов djvu ориентирован на их размещение в Интернете, а программа DJVUmark может создавать htm-интерфейс для ON-Line чтения таких файлов, то открывается возможность создания электронных библиотек, допускающих размещения части книг в Интернете.

Каталог экспериментальной библиотечки "Network Library.djvu", исключительно содержит книги, размещенные в Интернете. Для того, чтобы посмотреть, как это работает, скачайте Network Library.djvu ( размер ~ 267кб ). Откройте этот файл и в закладках этого файла обнаружите каталог маленькой библиотечки. Не удивляйтесь разнородности состава библиотеки. Дело в том, что эти книги взяты из списка книг, представленных в качестве примеров внедрения закладок в файлы
djvu программой DJVUmark. Эти книги отбирались не по содержанию, а по характерным особенностям их djvu файлов с точки зрения внедрения закладок в такие файлы.