Автор Тема: Программа для генерации наименования и метаданных DjVu и PDF  (Прочитано 39277 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Давайте обсудим возможные варианты того, по какой системе назначать имена файлам DjVu-книг и какие XMP-метаданные вносить в DjVu-файлы (имеется в виду при самостоятельном создании DjVu-книги).

Сейчас для именования DjVu-файлов используется программа NameCreator http://www.djvu-soft.narod.ru/soft/namecreator.htm .

Есть мнение, что она уже немного устарела.

Идея топика в том, чтобы разработать на базе NameCreator некую новую программу (разумеется, свободно-бесплатную с открытыми исходниками), которая будет как генерировать имя файла для создаваемой DjVu-книги (по некоей системе), так и одновременно при этом позволять записывать XMP-метаданные в этот же самый DjVu-файл (причём будет соблюдаться некое соответствие между именем DjVu-файла и его XMP-метаданными).

(В продолжение темы http://www.djvu-scan.ru/forum/index.php?topic=34.msg262#msg262)

20.03.10
Тема переименована с "Система именования и метаданных DjVu" на "Программа для генерации наименования и метаданных DjVu".

Смысл данной темы - разработка и создание реальной программы, которая будет генерировать "говорящее" имя файла DjVu-книги + XMP-метаданные в этой DjVu-книге.


18.08.10
Тема переименована с "Система именования и метаданных DjVu" на "Программа для генерации наименования и метаданных DjVu и PDF".
« Последнее редактирование: 18 °ТУгбв 2010, 17:32:30 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Напомню свою идею "квалификатора качества":
(Из http://www.djvu-scan.ru/forum/index.php?topic=34.msg251#msg251)
Цитировать
По поводу именования файлов: сейчас Name Creator прописывает в имени файла всякие условные обозначения качества DjVu-книги. Например, (T)(C)(K).

Идея хорошая, правда, ИМХО, с недостатками. Дело в том, что подобных признаков качества гораздо больше, чем имеется в Name Creator. Например:

1. Делали ли Deskew.
2. Искривлены ли строки.
3. Какой режим - серый/ч.б./
И т.д. и т.п.

Поэтому я бы предложил иной вариант: взять двоичное число - длиною, скажем, 16 бит. И каждому биту назначить тот или иной признак качества. 0 или 1 в данном бите будет означать наличие/отсутствие того или иного признака качества. Полученное 16-битное число - прописывать в имени файла - в шестнадцатиричном виде (для краткости). Это будет выглядеть как "1FD5" или "34AA".

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

Также можно условно поделить весь диапазон значений 16-битного числа на 5 поддиапазонов - т.е. классы качества. Почему 5 - по аналогии со школьными оценками, т.е. как бы "выставлять" качеству DjVu-книги ту или иную оценку, как в школе - от 1 до 5. Тогда в дальнейшем опытный глаз, глянув на шестнадцатиричный индикатор уровня качества в имени файла, сразу умозрительно прикинет, к какому из 5 классов качества относится данная DjVu-книга. Плюс это можно будет в своей программе показывать.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Alfizik
Отвечу на Ваш пост http://www.djvu-scan.ru/forum/index.php?topic=34.msg262#msg262:
Цитировать
Качество можно оценивать по объективным и субъективным критериям.
Резонно.
Цитировать
Имхо, тогда оценивать можно по следующей системе (ввести несколько разрядов): 1 - ниже 300 dpi; 2 - 300 dpi; 3 - 450 (400) dpi; 4 - 600 dpi и 5 - выше 600 dpi. Возможно есть смысл  добавить и больше разрядов (короче требует обсуждения).
Я думаю, что для начала, в качестве рабочего варианта, давайте будем записывать DPI "как есть" - поскольку его значение так трудно формализовать. Т.е. так и писать: "300","600","150","200". Всё-таки, так будет наиболее просто и понятно.
Цитировать
2.цвет книги
ч\б, отенки серого, цветная, малоцветная (менее 16, 8 или 4 цветов).
Наверняка там есть различные нюансы.
Не, там всё предельно чётко. Это определяется лишь наличием-отсутствием тех или иных чанков (что можно посмотреть в WinDjView).
Цитировать
Различать ли какую методику применяли для битонизации (приведение к ч\б )?
Если я правильно понял, то нет. Что значит "методика битонизации"? Какой алгоритм бинаризации использовался и с какими параметрами?
Цитировать
Убирали ли фон и приводили ли его к белому?
Это совсем уж экзотика. Думаю, это делают буквально единицы.
Цитировать
Еще слышал можно обложку книги по разному обрабатывать.
Это совершенно несущественно.
Цитировать
3. Deskew

4. Искривление строк

5. Наличие черных полос на разворотах.

6. Закодирована DjVu-книга в двойных разворотах или каждый лист отдельно.

7. Совпадает ли нумерация страниц книги с нумерацией листов в DjVu файле

8. Есть ли OCR-слой

9. Производилась ли чистка сканов от мелкого мусора (точек)?
Забыл как эта функция в СканКромсаторе называется.

10. Обрезались ли сканы и приводилось ли все поля к одному размеру?
Кажется в NameCreator-е это называется kromsated.
Вот это уже ИМХО более правильные критерии.
Цитировать
Субъективные
Пока ничего не могу сказать. Это можно оставить "на потом" (для обсуждения).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Alfizik
У меня по поводу квалификатора качества такие соображения:

- Квалификатору качества следует иметь номер версии. Вряд ли мы сразу сможем безукоризненно верно определить критерии качества DjVu-книги. Номер версии я предлагаю писать до квалификатора и отделять от него подчёркиванием. Например, "1_FD45". Почему отделять подчёркиванием? Потому что неизвестно, сколько всего будет версий, а значит непонятно, сколько разрядов резервировать под номер версии.

- Программа, о которой я говорю (возможный расширенный аналог NameCreator - с возможностью записи XMP-метаданных), должна, пожалуй, быть способной работать не только с DjVu - но также и с PDF. Ведь XMP вообще-то пришло в DjVu из PDF.

Это означает, что мне потребуется какая-нибудь свободно-бесплатная консольная утилита, умеющая работать с PDF XMP. Кто-нибудь знает такую?

Кстати, давайте пока условно (для удобства) назовём как-нибудь такую гипотетическую программу. Например, "NameCreator-2", или "NC2".

Признаки качества нужно отранжировать по важности: сначала - самые важные, затем менее, и т.д.

Вот мои соображения (в порядке снижения важности - по критерию читабельности). Выражаюсь Вашими же словами:

1.
Цитировать
Цвет книги.
Точнее, правильность выбора цвета книги. Я даже специально сделал пример DjVu, иллюстрирующий неправильный выбор цвета:

http://www.djvu-soft.narod.ru/scan/bad_colored_djvu.rar (120 КБ)

Такую книгу просто невозможно читать - только заново пересканировать.

2.
Цитировать
Закодирована DjVu-книга в двойных разворотах или каждый лист отдельно.

3.
Цитировать
Deskew.


4.
Цитировать
Наличие черных полос на разворотах.
(Немного спорный признак. Бывает, что книга сделана, в общем-то, неплохо - только где-нибудь затесалась узёхонькая черная полоска).

5. 
Цитировать
Обрезались ли сканы и приводилось ли все поля к одному размеру?
Кажется в NameCreator-е это называется kromsated.
Я бы сказал проще: "приводилось ли все поля к одному размеру?" Это ведь автоматически подразумевает обрезку.

Кстати - 4 и 5 как-то похожи друг на друга вроде бы.

6.
Цитировать
Искривление строк.

7.
Цитировать
Есть ли OCR-слой.

8. Есть ли отсутствующие страницы (либо куда-то отдельно это записывать).

9.
Цитировать
Производилась ли чистка сканов от мелкого мусора (точек)?
Забыл как эта функция в СканКромсаторе называется.
Это называется "despeckle".

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

Цитировать
Субъективные
Сюда бы я отнёс такой довольно ощутимый признак, как "качество букв". Не знаю, как это объективно описать. Обычно хорошее качество букв достигается апсемплингом с интерполяцией с 300 dpi до 600 dpi (в Scan Tailor это делается по-умолчанию, в ScanKromsator надо явно указывать). В результате, буквы получаются такими "жирненькими", и читать такую книгу гораздо приятнее.

В общем, субъективно я бы это назвал "колкость текста для глаз". Колкий текст хрен почитаешь - в больших количествах, а проинтерполированный до 600 dpi - одно загляденье. Хотя, в редких случаях, и на 300 dpi получается "жирненькие" буквы, не-колкие.
« Последнее редактирование: 12 јРав 2010, 23:03:35 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Ещё один субъективный признак качества: DjVu, сделанный по принципу DjVu Digital.

Т.е. это DjVu, полученный путём прямой конвертации некоего чисто векторного контента в DjVu. Например, по преобразованию PDF - DjVu, или печать на виртуальном DjVu-принтере текстового файла, или конвертор Office2007-DjVu.

Обычно такой DjVu имеет наивысшее возможное качество. Яркий пример такого DjVu-это спецификации формата DjVu в DjVu.

C другой стороны, в DjVu-книгосканировании DjVu Digital практически не применяется. Получается, что это больше как признак качества произвольного DjVu-файла - нежели чем именно DjVu-книги.

P.S. Тема переименована - см. самый первый пост.
« Последнее редактирование: 20 јРав 2010, 13:26:56 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Ещё один субъективный признак качества: DjVu-книга, полученная при помощи цифрового фотоаппарата - а не сканера.

Вот пример такой книги (довольно любопытно):

http://ifolder.ru/16907196  (10,6 МБ)

Цитировать
Фотик Cannon A540,с выключенной вспышкой. Больше ничего, только после того как выделил в кромсаторе картинки - отдельно каждую (штук 300, включая все буквицы в начале глав) обработал в фотошопе на предмет уровней белого. Иначе очень некрасиво выходило.
« Последнее редактирование: 21 јРав 2010, 18:21:23 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Цитировать
Ещё один субъективный признак качества: DjVu-книга, полученная при помощи цифрового фотоаппарата
Нужно ли выделять ее из группы "искривление строк"? Другой вопрос, что искривления разные - есть возле корешка - когда буквы в кучу собираются, есть когда корешок прижат хорошо, но страница в другом месте не прижалась - небольшие локальные искривления. А есть фотоискажения - трапеция и (или) подушка всей страницы в целом.
Кстати, отдельная особенность фотосканов - сложность определения dpi. Вот в приведенной книге реальное dpi вполне может колебаться даже для соседних страниц разворота, например 1147.1 на одной странице и 1149.4 на другой - в зависимости от расстояния страницы до объектива фотоаппарата.

По-моему классификацию, как и обработку, следует делить на 3 категории -
качество скана - dpi; фотоскан, сканер, скриншот с электронной книги или электронная книга.

пре-djvu-обработка - тупо по этапам СТ + удаление растра + тоновая коррекция

кодирование в djvu - профиль кодирования - простой - bitonal, photo; или смешанный - scanned или photo+bitonal или photo + posterized (с указанием dpi для background). Плюс степень сжатия background (в приведенной фотокниге при отличном кодировании иллюстрации чуть пережаты - это видно при их увеличении).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
57an
Цитировать
Нужно ли выделять ее из группы "искривление строк"?
Я пока не знаю. Пока просто собираю информацию. Вопрос признаков качества DjVu-книги непростой.

Понятно, что мало кто из книгосоздателей вообще захочет прописывать в имени файла точный квалификатор качества. Многие вообще не знают и знать не хотят - что такое Deskew и т.д.

Значит, юзвери будут писать в качестве квалификатора качества заведомую лабуду - которая будет только с толку сбивать.

Это только в больших сетевых библиотеках, надеюсь, станут правильно именовать собранные книги.

Можно сделать, скажем, 2 квалификатора качества: один - краткий - для записывания в имя файла, второй - полный - для записывания в XMP-метаданные DjVu-файла. Хотя не факт, что это нужно - просто как идея.

Такой момент ещё: NameCreator, как известно, не даёт 100% обратимости русский-транслит. Мне это пока что кажется неправильным - хотелось бы именно полную обратимость (для программного преобразования, например).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Сегодня я случайно заметил, что, оказывается, djvused уже поддерживает работу с XMP-метаданными DjVu-файла! Это видно из её документации http://djvu.sourceforge.net/doc/man/djvused.html (в самом низу страницы выше фразы "LIMITATIONS"):
Цитировать
(metadata ... (key value) ... )
Define meta-data entries. Each entry is identified by a symbol key representing the nature of the meta data entry. The string value represents the value associated with the corresponding key. Two sets of keys are noteworthy: keys borrowed from the BibTex bibliography system, and keys borrowed from the PDF DocInfo metadata. BibTex keys are always expressed in lowercase, such as year, booktitle, editor, author, etc.. DocInfo keys start with an uppercase letter, such as Title, Author, Subject, Creator, Produced, Trapped, CreationDate, and ModDate. The values associated with the last two keys should be dates expressed according to RFC 3339.
То есть, ничего уже даже и придумывать самому не надо - как бы работать с XMP-метаданными DjVu-файла, всё уже придумано.  :)

Скачать самую свежую версию djvused (поддерживающую в т.ч. эту функциональность) можно тут:

http://www.djvu-soft.narod.ru/soft/djvused.rar  (283 КБ)
« Последнее редактирование: 31 јРав 2010, 10:49:19 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
У меня возникли некоторые новые идеи относительно программы, обсуждаемой в данном топике.

1. Такая программа должна работать не только с DjVu - но также одновременно и с PDF. Другие форматы я не рассматриваю - т.к. большинство книг в нашей сфере имеют форматы только DjVu и PDF.

2. При генерации информативного имени для PDF- или DjVu-книги для транслитерирования кириллицы в латинницу такой программе следует использовать действующий ГОСТ 7.79—2000: Правила транслитерации кирилловского письма латинским алфавитом.:
http://www.ifap.ru/library/gost/7792000.pdf
http://www.gsnti-norms.ru/norms/common/doc.asp?2&/norms/stands/7_79.htm (в этой HTM-версии есть опечатки, :o так что за основу следует брать PDF-версию строкой выше).

Программа NameCreator, используемая ныне, не использует этот ГОСТ. Использование ГОСТа хорошо тем, что, во-первых мы избежим отсебятины при транслитерации, а во-вторых - этот ГОСТ обеспечивает 100%-обратимость (машинно-алгоритмическую) при прямой и обратной транслитерации! :-* Это довольно важно - и NameCreator такую обратимость, насколько я помню, не обеспечивает.

ГОСТ 7.79—2000 - это очень простой для понимания документ, и его будет легко реализовать в виде алгоритма транслитерации. И это - официально действующий в данный момент документ.

3. Для характеристики качества изготовления электронной PDF- или DjVu-книги ("квалификатор качества") я предлагаю использовать 5-балльную шкалу оценок. Прямо как в школе. Просто я подумал - все эти многочисленные критерии качества почти невозможно строго формализовать. Так пусть уж пользователь сам "выставляет книге оценку", исходя из произвольных собственных представлений о том, "на какой балл она тянет". И это будет достаточно надёжно - в конце концов, на 5-балльной шкале оценок у нас работают все школы и институты - и нормально. Можно лишь составить примерную табличку, где приблизительно сгруппировать все признаки качества по баллам. Но эта табличка будет носить только рекомендательный характер.
5-балльная шкала оценок - это надёжное средство оценивания, опробованное в широких масштабах и в течение длительного времени.

4. Такая программа будет не только формировать информативное имя файла - но также и (опционально) одновременно формировать и записывать XMP-метаданные - как для PDF, так и для DjVu. И чисто техническая возможность для этого уже есть. Для записи XMP в PDF я предполагаю использовать ExifTool http://owl.phy.queensu.ca/~phil/exiftool/ , а для записи XMP в DjVu - djvused.

Остающиеся проблемы:

1. Я пока ещё не решил, по какой типовой схеме генерировать информативное имя файла электронной PDF- или DjVu-книги. Видимо, это будет примерно так же, как и у NameCreator - Название, Автор, и т.д. Вот бы был какой-нибудь ГОСТ именно для этого! :-\ Так не хочется городить отсебятину...  :-[ Можно попробовать обсудить вопрос с крупными электронными библиотеками (типа Либрусека).

2. Возникает проблема корреляции между информативным именем файла и XMP-метаданными. По идее, надо бы сделать их 100% взаимно-обратимыми в автоматическом режиме. Т.е., чтобы мы, скажем, имея только информативное имя файла, могли полностью автоматом генерить XMP (хотя бы частично - понятно, что в XMP сведений помещается гораздо больше, чем в имя файла) - и наоборот. Но тогда возникает вопрос - стоит ли в информативном имени файла разделять его логические части каким-нибудь спецсимволом, например "|" - как в e2dk-ссылках? Это для того, чтобы программа могла полностью автоматически распарсить информативное имя файла на соответствующие поля XMP-метаданных. Но не породит ли использование такого спецсимвола лишние неудобства и проблемы?

Кстати, XMP описан тут:
http://en.wikipedia.org/wiki/Extensible_Metadata_Platform

Я пока ещё не очень с ним разобрался, но похоже, что в его основные поля выглядят так http://en.wikipedia.org/wiki/Dublin_Core :
Цитировать
Title — название;
Creator — создатель;
Subject — тема;
Description — описание;
Publisher — издатель;
Contributor — внёсший вклад;
Date — дата;
Type — тип;
Format — формат документа;
Identifier — идентификатор;
Source — источник;
Language — язык;
Relation — отношения;
Coverage — покрытие;
Rights — авторские права.

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

Audience — аудитория (зрители);
Provenance — происхождение;
RightsHolder — правообладатель.
Каждый элемент опционален и может повторяться
« Последнее редактирование: 18 °ТУгбв 2010, 18:09:38 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Пытаюсь пока разобраться с форматом метаданных для PDF и DjVu.

Начал с DjVu разбираться. Пока что всё непонятно. Оказалось, что термин "metadata" в DjVu означает именно "текстовые метаданные" - вроде XMP. А я-то всегда подразумевал под DjVu-метаданными те мета-объекты, которые можно вставить в DjVu при помощи Document Express Editor 6.0 - например, Hyperlink, Text Area, и т.п. Оказывается, эти мета-объекты следует именовать не "метаданные" - а "аннотации". Они именно так и именуются в DjVu-спецификации. А "метаданные" - это лишь один из видов "аннотаций". Вот что об этом говорится в DjVu-спецификации:
Цитировать
7.1.3.4 Annotations and Textual Information
All types of DjVu images may contain annotation chunks. Annotation chunks are used to
describe hyperlinks, to specify more viewer settings (page background, initial zoom, etc), and to hold metadata information. Annotations are contained in “ANTa” or “ANTz” chunks.

Теперь перейдём именно к DjVu-метаданным.

Действующая спецификация формата DjVu не даёт никакого описания DjVu-метаданных. И вообще, в этой спецификации слово "metadata" встречается один раз - как раз в той цитате выше (7.1.3.4 Annotations and Textual Information).

Формат DjVu-метаданных описан официально тут:

http://djvu.cvs.sourceforge.net/viewvc/djvu/djvulibre-3.5/doc/djvuchanges.txt

Это документ, содержащий предложения по улучшению формата DjVu - появившиеся уже после принятия текущей спецификации. Я уже убедился на практике, что де-факто этот документ находится в полной власти Леона Боту.

В этом документе Леон предложил свой вариант формата DjVu-метаданных:
Цитировать
4- METADATA

4.1- DJVULIBRE METADATA

DjVuLibre has introduced metadata annotations a few years ago.
Metadata entries for each page are represent by key/value pairs
located in a metadata directive in the annotation chunk.
Metadata entries for the document are represented similarly
using the methods described in the next section.

The metadata directive has the form

  (metadata ... (key "value") ... )

Each entry is identified by a symbol <key>
representing the nature of the metadata entry.
The string <"value"> represents
the value associated with the corresponding key.

Several sets of keys are noteworthy.

* Keys borrowed from the BibTex bibliography system.
  These key names are always expressed
  in lowercase, such as 'year', 'booktitle', 'editor',
  'author', etc. 

* Keys borrowed from the PDF DocInfo.
  These key names start with an uppercase letter:
  'Title', 'Author', 'Subject', 'Keywords', 'Creator',
  'Producer', 'Trapped', 'CreationDate', and 'ModDate'.
  The values associated with the last two keys
  should be dates expressed according to RFC 3339.

4.2- XMP METADATA

The XMP specification describes a general purpose RDF/XML format for
metadata. Just like DjVuLibre metadata, XMP metadata is embedded in
an annotation chunk at the page or document level using the following
annotation directive

   (xmp "<rdf:RDF xmlns:rdf=... [escaped XMP here] ...</rdf:RDF>")

The sole argument of the xmp directive is the serialized XMP data
without the "xpacket" wrapper. The "x:xmpmeta" element may also be
dropped. Only elements from "rdf:RDF" inwards are needed.
Since the XMP data is represented as a string, doublequotes and
backslashes must be escaped.  Other characters may be escaped as well
(see section 2 above).

The full XMP specification is available from Adobe:

   http://www.adobe.com/devnet/xmp/

To maximize interoperability with current viewers, it is recommended
that XMP manipulation programs keep the DjVuLibre metadata in sync.
This is facilitated by synchronizing the PDF DocInfo keys with XMP
properties as follows:

   DocInfo key    XMP property
   ------------   ---------------
   Title          dc:title
   Author         dc:creator
   Subject        dc:description
   Keywords       pdf:Keywords
   Producer       pdf:Producer
   Trapped        pdf:Trapped
   Creator        xmp:CreatorTool
   CreationDate   xmp:CreateDate
   ModDate        xmp:ModifyDate

4.3- DOCUMENT ANNOTATIONS AND METADATA

The above schemes provide ways to specify metadata for each page.
But it is often useful to provide metadata that applies to the whole
document. Document wide metadata are represented using one or
several metadata directives in the shared annotations chunk.

This scheme has a potential drawback. Since the shared annotations
is included by all pages, the document wide metadata also appears as
page metadata for all pages. This might not be adequate for some
uses. As a workaround, the djview4 viewer only displays
page metadata that differ from the document metadata.
A more definitive answer would be the definition of a document
annotation chunk located after the DIRM chunk and before any
component file. This space is already used by the NAVM chunk. 
This is being considered.
Процесс создания этого описания подробно освещён тут:

http://www.djvu.org/forum/phpbb/viewtopic.php?t=530

Из того топика видно, как Леон Боту разрабатывал формат DjVu-метаданных, и делал он это совместно с автором ExifTool http://owl.phy.queensu.ca/~phil/exiftool/ Phil Harvey. Кстати, именно после этого ExifTool начал поддерживать DjVu-метаданные в режиме "только чтение" (а PDF-метаданные он умеет не только читать, но и править и записывать).

Из этого документа становится ясно, что в формате DjVu предлагается использовать целых 3 вида метаданных:

1. В стиле "PDF DocInfo". Что такое "PDF DocInfo" - я не знаю.
2. В стиле "BibTex bibliography system". Насколько я понимаю, описание этого стиля дано тут: http://en.wikipedia.org/wiki/BibTeX .
3. В стиле XMP. Я расспросил Phil Harvey http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,2779.0.html - какой там синтаксис. Вот что он мне ответил:
Цитировать
What goes in the XMP directive is standard XMP as documented in the XMP specification http://www.adobe.com/devnet/xmp/ .
The only difference is that the XMP should not use the "xpacket" or "x:xmpmata" wrappers
indicated in the XMP spec, and any double quotes and backslashes must be escaped with
a backslash.

Any XMP tags mentioned in the XMP spec are allowed in DjVu.  You can use ExifTool to generate the XMP packet if you want by writing to a .xmp file.

I forget now how to use djvused to insert this into a DjVu image, but it shouldn't be too
hard to figure out if you read the djvused documentation.

- Phil
Phil Harvey сделал образец DjVu-файла с метаданными и выложил его на форуме PlanetDjVu. Я взял этот файл и вытащил оттуда метаданные в текстовый формат. Вот что получилось (с небольшими правками):
Цитировать
select; remove-ant; remove-txt
# -------------------------
select 1
set-ant
(metadata
   (Author   "Phil Harvey")
   (Title   "DjVu Metadata Sample")
   (Subject   "ExifTool DjVu test image")
   (CreationDate   "2008-09-23T12:31:34-04:00")
   (ModDate   "2008-11-11T09:17:10-05:00")
   (Keywords   "ExifTool, Test, DjVu, XMP")
   (Producer   "djvused")
   (Trapped   "Unknown")
   (Creator   "ExifTool")
   (note   "Must escape double quotes (\") and backslashes (\\)") )
   (url   "http://owl.phy.queensu.ca/~phil/exiftool/")
(xmp "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>\n\n
<rdf:Description rdf:about=''\n  xmlns:album=\"http://ns.adobe.com/album/1.0/\">\n
<album:Notes>Must escape double quotes (&quot;) and backslashes (\\)</album:Notes>\n
</rdf:Description>\n\n <rdf:Description rdf:about=''\n  xmlns:dc='http://purl.org/dc/elements/1.1/'>\n
<dc:creator>\n
<rdf:Seq>\n
<rdf:li>Phil Harvey</rdf:li>\n
</rdf:Seq>\n
</dc:creator>\n
<dc:description>\n
<rdf:Alt>\n
<rdf:li xml:lang='x-default'>ExifTool DjVu test image</rdf:li>\n
</rdf:Alt>\n
</dc:description>\n
<dc:rights>\n
<rdf:Alt>\n
<rdf:li xml:lang='x-default'>Copyright 2008 Phil Harvey</rdf:li>\n
</rdf:Alt>\n
</dc:rights>\n
<dc:subject>\n
<rdf:Bag>\n
<rdf:li>ExifTool</rdf:li>\n
<rdf:li>Test</rdf:li>\n
<rdf:li>DjVu</rdf:li>\n
<rdf:li>XMP</rdf:li>\n
</rdf:Bag>\n
</dc:subject>\n
<dc:title>\n
<rdf:Alt>\n
<rdf:li xml:lang='x-default'>DjVu Metadata Sample</rdf:li>\n
</rdf:Alt>\n
</dc:title>\n
</rdf:Description>\n\n
<rdf:Description rdf:about=''\n  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>\n
<pdf:Keywords>ExifTool, Test, DjVu, XMP</pdf:Keywords>\n
<pdf:Producer>djvused</pdf:Producer>\n
<pdf:Trapped>/Unknown</pdf:Trapped>\n
</rdf:Description>\n\n
<rdf:Description rdf:about=''\n  xmlns:xmp='http://ns.adobe.com/xap/1.0/'>\n
<xmp:CreateDate>2008-09-23T12:31:34-04:00</xmp:CreateDate>\n
<xmp:CreatorTool>ExifTool</xmp:CreatorTool>\n
<xmp:ModifyDate>2008-11-11T09:17:10-05:00</xmp:ModifyDate>\n
</rdf:Description>\n</rdf:RDF>")
.
В этом скрипте для djvused отображены 2 вида DjVu-метаданных - сначала PDF DocInfo-метаданные, а затем XMP-метаданные.

В описании DjVu-метаданных предлагается максимально синхронизировать DocInfo-метаданные и XMP-метаданные (по отделным полям). В том же документе приводится табличка соответствия:
Цитировать
   DocInfo key    XMP property
   ------------   ---------------
   Title          dc:title
   Author         dc:creator
   Subject        dc:description
   Keywords       pdf:Keywords
   Producer       pdf:Producer
   Trapped        pdf:Trapped
   Creator        xmp:CreatorTool
   CreationDate   xmp:CreateDate
   ModDate        xmp:ModifyDate
Кроме ExifTool, DjVu-метаданные ещё поддерживаются в последних версиях DjVu-просмотрщика DjView (в составе DjVuLibre). Тоже "только на чтение".

И ещё DjVu-метаданные поддерживаются в DjVu Shell Extension Pack http://dev.caminova.jp/beta/djvu-wic/ - официальном продукте от компании Caminova. Этот факт ИМХО означает, что Caminova практически согласилась внести в будущем исправление в спецификацию DjVu касательно (предложенным Леоном Боту) формата DjVu-метаданных (если, конечно, спецификация DjVu ещё когда-нибудь будет правиться).

DjVu-метаданные могут быть как для всего DjVu-файла в целом, так и отдельно для каждой его страницы.

В общем, чтобы освоить работу с DjVu-метаданными, нужно освоить PDF DocInfo, BibTex bibliography system и XMP. Всё это, похоже, большая морока. Надо хотя бы понять, какой возможен список полей (какие их имена допускаются), какова максимально возможная длина каждого поля, и т.п.
« Последнее редактирование: 19 °ТУгбв 2010, 15:21:34 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Хотел посоветоваться на форуме http://gen.lib.rus.ec/forum/ - но пишет "Access denied.". Что за ерунда?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Я тут немного поискал ГОСТы, которые могут иметь отношение к теме. Выложил их у себя для удобства:

Все они относятся к категории Система стандартов по информации, библиотечному и издательскому делу (коротко "СИБИД") http://bibliography.ufacom.ru/method/gosts/sibid.htm

ГОСТ 7.1-2003. БИБЛИОГРАФИЧЕСКАЯ ЗАПИСЬ. БИБЛИОГРАФИЧЕСКОЕ ОПИСАНИЕ. Общие требования и правила составления.
http://www.djvu-soft.narod.ru/scan/gost_7_1_2003.rar  (259 КБ)

ГОСТ 7.79-2000 (ИСО 9-95). ПРАВИЛА ТРАНСЛИТЕРАЦИИ КИРИЛЛОВСКОГО ПИСЬМА ЛАТИНСКИМ АЛФАВИТОМ.
http://www.djvu-soft.narod.ru/scan/gost_7_79_2000.rar  (1,37 МБ)

ГОСТ 7-80.2000. БИБЛИОГРАФИЧЕСКАЯ ЗАПИСЬ. ЗАГОЛОВОК. ОБЩИЕ ТРЕБОВАНИЯ И ПРАВИЛА СОСТАВЛЕНИЯ.
http://www.djvu-soft.narod.ru/scan/gost_7_80_2000.rar  (103 КБ)

ГОСТ 7.82—2001. БИБЛИОГРАФИЧЕСКАЯ ЗАПИСЬ. БИБЛИОГРАФИЧЕСКОЕ ОПИСАНИЕ ЭЛЕКТРОННЫХ РЕСУРСОВ. Общие требования и правила составления.
http://www.djvu-soft.narod.ru/scan/gost_7_82_2001.rar  (305 КБ)

ГОСТ 7.83—2001. ЭЛЕКТРОННЫЕ ИЗДАНИЯ. Основные виды и выходные сведения.
http://www.djvu-soft.narod.ru/scan/gost_7_83_2001.rar  (259 КБ)

Все в формате "векторный PDF".
« Последнее редактирование: 20 °ТУгбв 2010, 15:41:25 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
В этих ГОСТах можно почерпнуть кое-что полезное в плане идей насчёт того, как именовать файлы PDF- и DjVu-книг.

Хотя я думаю, что всё равно прийдётся разработать некий свой стандарт именования таких файлов. :-\ Это, конечно, очень неприятное занятие - совместно вырабатывать какой-либо стандарт. Но иного пути не вижу - какого-нибудь ГОСТа, который бы регламентировал именно имена файлы PDF- и DjVu-книг, я не обнаружил. :)

Приглашаю всех желающих высказаться на тему "Каким должен быть стандарт именования файлов PDF- и DjVu-книг". Давайте разработаем совместно такой стандарт. За основу, думаю, следует взять схему работы NameCreator http://www.djvu-soft.narod.ru/soft/namecreator.htm .

У меня пока что такие соображения:

1. Нужен жёсткий порядок следования первых N смысловых элементов в имени файла (типа "Автор", "Заглавие", ...). Допустим, на первом месте чтобы всегда шла фамилия автора (а так оно почему-то всегда и есть в реальной жизни), на втором - название книги, на третьем - год (издательство?), на четвёртом - количество страниц. Жёсткий порядок следования нужен для возможности машинного (полностью автоматического) разбора имени файла на отдельные смысловые элементы - типа "Название", "Автор", ... (при генерации хотя бы того же HTML-списка книг). После первых N элементов порядок оставшихся смысловых элементов пусть будет произвольным (ибо нельзя всё предусмотреть). Порядок следования и количество N нужно обсудить всем вместе.

2. Предлагаю ВСЕГДА разделять первые N смысловых элементов в имени файла каким-нибудь спецсимволом. "|" мне уже не очень нравится - т.к. слишком тесноту создаёт (визуально) в имени файла - неудобно для человеческого прочтения. Как насчёт знака одиночного подчёркивания? Кстати, подчёркивание обычно прекрасно поддерживается на разных системах именования, в разных языках, операционных системах и т.п.
Такой спецсимвол также нужен для возможности машинного (полностью автоматического) разбора имени файла.

3. Предлагаю указывать в имени файла 5-балльный квалификатор качества (см. предыдущие посты топика). И вместо нынешних конкретных признаков качества в духе NameCreator http://www.djvu-soft.narod.ru/soft/namecreator.htm "landscape", "kromsated", "dpi" и т.д. Т.е. указывать просто одну цифру, и перед нею, скажем, букву "Q" - означающую "quality". С буквой "Q", думаю, будет нагляднее (а то, если будет просто одна цифра, все станут себя спрашивать - "что это за цифра?"). Кстати, значение DPI вовсе не всегда есть синоним качества. Я видел и на 300 dpi превосходные книги - и погань на 600 dpi.

4. Никакие классификаторы области знания в имени файла предлагаю не указывать. Такие, как ISBN, УДК, ББК, и т.п. Всё это можно будет записать в метаданных файла - причём все сразу, какие только есть в книге (при желании) - там места много (в метаданных). Почему? Во-первых, слишком удлиняется имя файла. Во-вторых, нет единой стандартной системы такой классификации - старые советские книги используют только УДК, новые - ISBN. Получается несистематизируемый жёстко разнобой. К тому же, такая вещь, как ISBN, не предназначена для непосредственного человеческого восприятия - это более как справочное сведение. В общем, нечего ISBN делать именно в имени файла.

5. Если у книги больше одного автора - то указывать только первого по списку. Так, кстати, рекомендует ГОСТ 7-80.2000 (самый толковый из вышеперечисленных, между прочим).

6. Имя файла писать всегда латинскими буквами. Не-англоязычные названия книг не переводить на английский, а транслитерировать. Транслитерацию при необходимости осуществлять по ГОСТ 7.79-2000.

Вот черновой пример имени файла по такой схеме:

Avtor A. A._Nazvanie_1995_Izdatelstvo_225s_Q4.djvu

Человеко-наглядно, не правда ли? Это тоже важное требование к имени файла (человеко-наглядность).

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

Эта схема, конечно, обрисовывает всё лишь в общих чертах. Естественно, что будут ещё всякие детали.
« Последнее редактирование: 20 °ТУгбв 2010, 16:34:39 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Ещё неплохо бы обсудить такую проблему, как запись файлов с длинными именами на DVD (CD) болванку. Обычно ведь тот же Nero ругается на такие имена, когда начинаешь делать проект под запись.