- PVSM.RU - https://www.pvsm.ru -
На GT мы уже рассказывали об истории и принципах работы форматов электронных книг DjVu [1], FB2 и его «младшего брата» FB3 [2]. Сегодня мы решили поговорить о стандарте, который помогает эти книги распространять. Расскажем, зачем нужны электронные каталоги OPDS и как они «устроены».
[3]
/ Flickr / Gael Varoquaux [4] / CC [5]
OPDS (Open Publication Distribution System) — это формат синдикации [6] для электронных публикаций. Его цель — предоставить пользователям приложений и устройств для чтения возможность просматривать и скачивать книги из электронных библиотек.
Проект начали разрабатывать в апреле 2009 года. В нем приняли участие несколько организаций и компаний, включая Internet Archive [7], Feedbooks, O'Reilly и Lexcycle, занимавшаяся [8] разработкой ПО для чтения электронной литературы. В основу стандарта положили технологии HTTP (RFC2616 [9]) и Atom (RFC4287 [10]).
Atom — это другой формат синдикации, основанный [11] на XML. Он позволяет описывать наборы веб-ресурсов: новостные ленты, анонсы статей в блоге и так далее. По своей сути он похож на RSS и решает те же задачи, однако не имеет ряда его недостатков, в частности, он лучше стандартизирован (взаимоотношения между разными версиями RSS довольно запутанны — они могут быть несовместимы [12] друг с другом). На сегодняшний день Atom поддерживает компания Google во многих своих проектах, например в Feedburner [13].
OPDS-каталоги позаимствовали [14] концепцию фидов (feeds) и записей (entries) у формата Atom. По сути, фиды представляют собой контейнеры для записей и делятся [15] на две категории: навигационные (navigation feeds) и загрузочные (acquisition feeds). Первые задают иерархию для поиска контента, а вторые — содержат списки записей с информацией о доступных публикациях. В каждой записи имеются метаданные: формат электронной книги, заголовок, способ получения и др.
Записи в списке представляют [14] собой ссылки, которые или направляют пользователя к другому фиду, или предоставляют ему возможность скачать публикацию. В Atom, на котором основывается OPDS, ссылка представляет собой тег с атрибутом rel (relationship). Это отношение обозначает способ приобретения и правила предоставления литературы. Поддерживаются следующие варианты:
На официальном сайте проекта OPDS приводится следующий пример оформления такой ссылки:
<link rel="http://opds-spec.org/acquisition"
type="video/mp4v-es"
href="/content/free/4561.mp4"/>
Если одна публикация доступна в нескольких форматах, то они представляются группой ссылок в одной записи:
<link rel="http://opds-spec.org/acquisition/borrow"
href="/content/borrow/4561.mobi"
type="application/x-mobipocket-ebook"/>
<link rel="http://opds-spec.org/acquisition/borrow"
href="/content/borrow/4561.epub"
type="application/epub+zip"/>
Иногда ссылка не ведет к книге напрямую. Это происходит в том случае, если публикация запакована в zip-архив, где лежит несколько файлов (например, те же копии книги в разных форматах). Для описания «внутренностей» такого компонента используется элемент opds:indirectAcquisition, где типом является формат медиаэлемента:
<link type="application/zip" rel="http://opds-spec.org/acquisition/open-access" href="/item/1111/buy/">
<opds:indirectAcquisition type="application/epub+zip" />
<opds:indirectAcquisition type="application/pdf" />
<opds:indirectAcquisition type="application/x-mobipocket-ebook" />
</link>
А вот пример оформления ссылки для ситуации, когда публикация является платной. Атрибут currencycode определяет валюту:
<link rel="http://opds-spec.org/acquisition/buy"
href="/product/song1.mp3"
type="audio/mpeg">
<opds:price currencycode="USD">1.99</opds:price>
</link>
Одними из первых начали использовать OPDS издатели и библиотеки. Позже к сообществу присоединились [16] разработчики приложений-читалок и продавцы электронной литературы. Чаще всего они и выступают создателями OPDS-каталогов. Список самых популярных каталогов можно найти на сайте со спецификацией [16] OPDS.
Например, там есть Feedbooks, который распространяет более 3 млн электронных книг каждый месяц. В коллекции Internet Archive находится [17] почти 2 млн публикаций, а O'Reilly Media предлагает [18] тысячи экземпляров технической литературы. Также можно выделить каталоги The Pragmatic Programmers [19] и Revues.org [20].
В целом же в сети можно найти множество каталогов OPDS на разных языках. При этом у пользователей есть возможность сформировать собственный каталог, чтобы организовать доступ к своей книжной библиотеке с любого устройства. Есть даже специальные программы, которые могут с этим помочь. Например, такую утилиту предлагает [21] FBReader — она основана на коде books.fbreader.org [22].
Работу с OPDS поддерживают и другие ридеры, в частности, Cool Reader, Bluefire Reader, QuickReader, AlReader и OReader. Последний является адаптацией AlReader специально для ридеров ONYX-BOOX, которую доработал сам создатель оригинального приложения. Читалка получила [23] единое интерфейсное меню и встроенный сканер метаданных, используемых системой. Еще в OReader была добавлена поддержка технологии SNOW Field, которая не работает в AlReader. SNOW Field улучшает [24] «перерисовку» страницы на экране с электронными чернилами, снижая количество артефактов при перелистывании (и исключает частые «заливки» дисплея черным).
Отметим, что некоторые приложения, хотя и работают с OPDS, не поддерживают мультимедийный контент. Отличаются программы и по количеству поддерживаемых форматов электронной литературы.
В целом же для работы с OPDS нужно подключить интересующие сетевые библиотеки. О том, как это сделать на читалках ONYX, можно узнать в одном из материалов [25] на нашем сайте. После можно начать просматривать публикации, ориентируясь по фидам и спискам записей.
Отметим, что пользователь может находить нужные книги не только с помощью фидов, но и с помощью функции поиска. Поиск OPDS основан на формате Open Search [26]. В этом случае создается отдельный XML-файл с описанием параметров поиска — OpenSearch Description. Вот пример [27] заполнения такого файла из репозитория Open Search на GitHub:
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Web Search</ShortName>
<Description>Use Example.com to search the Web.</Description>
<Tags>example web</Tags>
<Contact>admin@example.com</Contact>
<Url type="application/rss+xml"
template="http://example.com/?q={searchTerms}&pw={startPage?}&format=rss"/>
</OpenSearchDescription>
Обычно он называется OpenSearch.xml и лежит в корне каталога.
/ Flickr / Dave Collie [28] / CC [5]
На сегодняшний день выпущено несколько спецификаций OPDS: это версии OPDS Catalog 0.9 (2010 год), OPDS Catalog 1.0 (2010 год) и OPDS Catalog 1.1 (2011 год), которая является последней выпущенной на сегодняшний день. Однако существует «черновик» новой версии стандарта — 1.2. В нем должен появиться [29] функционал, который позволит сдавать книги в аренду, то есть выдавать их на определенный промежуток времени. Дополнительно будут добавлены новые атрибуты для типов медиаконтента, элементы для обозначения рейтинга и числа скачиваний книги, а также профили OPDS для пользователей.
При этом сообщество, в лице продавцов электронной литературы, рабочей группы OPDS и других участников индустрии, работает [29] над спецификацией ODL (Open Distribution Libraries) и механизмов аутентификации OPDS, чтобы сделать возможной «горизонтальную» интеграцию библиотек и коммерческих сервисов, продающих книги, друг с другом.
Формат ODL уже используется [30] распространителями электронной литературы для пересылки информации о лицензиях библиотекам (например [31], в Feedbooks). Что же касается новой версии OPDS 1.2, то пока её спецификация существует [32] только в формате черновика (draft), а дата полноценного выхода стандарта остается [33] неизвестной.
Автор: IvanPavlov
Источник [37]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/planshety/280957
Ссылки в тексте:
[1] DjVu: https://geektimes.com/company/maccentre/blog/299737/
[2] FB2 и его «младшего брата» FB3: https://geektimes.com/company/maccentre/blog/300385/
[3] Image: https://geektimes.com/company/maccentre/blog/301145/
[4] Gael Varoquaux: https://www.flickr.com/photos/gaelvaroquaux/25533137127/
[5] CC: https://creativecommons.org/licenses/by/2.0/
[6] синдикации: https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BB%D0%B5%D0%B2%D0%B8%D0%B7%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F
[7] Internet Archive: http://archive.org/bookserver
[8] занимавшаяся: https://en.wikipedia.org/wiki/Lexcycle
[9] RFC2616: http://www.ietf.org/rfc/rfc2616.txt
[10] RFC4287: http://www.ietf.org/rfc/rfc4287.txt
[11] основанный: https://ru.wikipedia.org/wiki/Atom
[12] могут быть несовместимы: http://old.computerra.ru/2006/650/282802/
[13] Feedburner: https://en.wikipedia.org/wiki/FeedBurner
[14] позаимствовали: http://www.feedbooks.com/api/primer
[15] делятся: http://opds-spec.org/specs/opds-catalog-1-1-20110627/
[16] присоединились: http://opds-spec.org/about/
[17] находится: http://bookserver.archive.org/catalog/
[18] предлагает: http://opds.oreilly.com/opds/
[19] The Pragmatic Programmers: http://pragprog.com/catalog.opds
[20] Revues.org: http://bookserver.revues.org/
[21] предлагает: https://ru.fbreader.org/content/opds-creation-tool-fbreaderorg
[22] books.fbreader.org: https://books.fbreader.org/
[23] получила: http://www.the-ebook.org/forum/viewtopic.php?p=1226725&sid=8a7d89b86c5a8ddafc0ff65b781ddc63
[24] улучшает: https://onyxboox.by/novosti/?record_id=14
[25] материалов: https://onyx-boox.ru/review/ebook-onyx-boox-i63ml-newton-z-alexey/
[26] Open Search: http://www.opensearch.org/Home
[27] пример: https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md#opensearch-description-document
[28] Dave Collie: https://flic.kr/p/YpHxqv
[29] появиться: http://www.librarysimplified.org/OPDS.html
[30] используется: https://github.com/NYPL-Simplified/Simplified/wiki/StandardsDocuments
[31] например: https://docs.google.com/document/d/1jaHZSsMCZY80rH5sqJcp_kya0W2Dtkda7MrdFBkrOg8/
[32] существует: https://code.google.com/archive/p/openpub/
[33] остается: https://en.wikipedia.org/wiki/OPDS
[34] Каждый ридер хочет стать монитором: обзор ONYX BOOX MAX 2: https://onyx-boox.ru/review/ebook-onyx-boox-max2-geektimes/
[35] Технологии против «античности»: обзор ридера ONYX BOOX Chronos: https://onyx-boox.ru/review/ebook-onyx-boox-chronos-geektimes/
[36] Царица изволит почитать: обзор электронной книги ONYX BOOX Cleopatra 3: https://onyx-boox.ru/review/ebook-onyx-boox-cleopatra3-geektimes/
[37] Источник: https://geektimes.com/post/301145/?utm_campaign=301145
Нажмите здесь для печати.