Livres électroniques et leurs formats: FB2 et FB3 - histoire, avantages, inconvénients et principes de travail

Dans le dernier article, nous avons parlé des fonctionnalités du format DjVu . Aujourd'hui, nous avons décidé de nous attarder sur le format FictionBook2, plus connu sous le nom de FB2, et son «successeur» FB3.


/ Flickr / judit klein / cc

Apparence du format


Au milieu des années 90, les passionnés ont commencé à numériser les livres soviétiques. Ils ont traduit et sauvegardé la littérature dans une grande variété de formats. L'une des premières bibliothèques de Runet - la bibliothèque Maxim Moshkov - utilisait un fichier texte formaté (TXT).

Le choix en sa faveur a été fait en raison de la résistance aux dommages des octets et de la polyvalence - TXT s'ouvre sur n'importe quel système d'exploitation. Cependant, cela rendait difficile le traitement des informations textuelles stockées. Par exemple, pour passer à la millième ligne, vous avez dû traiter 999 lignes devant. Les livres étaient également stockés dans des documents Word et PDF - ce dernier était difficile à convertir dans d'autres formats, et des ordinateurs faibles ouvraient et affichaient des documents PDF avec des retards.

Aussi pour le "stockage" de la littérature électronique utilisée HTML. Il a simplifié l'indexation, la conversion vers d'autres formats et la création de documents (balisage de texte avec des balises), mais a présenté ses propres lacunes. L'un des plus importants était le « flou » de la norme: elle permettait certaines libertés lors de l'écriture de balises. Certains d'entre eux ont dû être fermés, d'autres (par exemple, <p>) - il n'était pas nécessaire de fermer. Les balises elles-mêmes peuvent avoir un ordre d'imbrication arbitraire.

Et même si un tel travail avec des fichiers n'était pas encouragé - ces documents étaient considérés comme incorrects - la norme exigeait que les lecteurs essaient d'afficher le contenu. C'est là que des difficultés ont surgi, puisque dans chaque application le processus de «spéculation» était mis en œuvre à sa manière. De plus, à cette époque, les appareils et applications disponibles sur le marché pour la lecture comprenaient un ou deux formats spécialisés. Si le livre était dans un seul format, il fallait le reformater pour le lire. FictionBook2 , ou FB2, qui a repris le "peignage" principal du texte et de la conversion, a été appelé pour résoudre toutes ces lacunes.

Notez que le format avait la première version - FictionBook1 - cependant, il n'était que de nature expérimentale, n'a pas duré longtemps, aujourd'hui il n'est pas pris en charge et n'a pas de compatibilité descendante. Par conséquent, FictionBook signifie le plus souvent son «suiveur» - le format FB2.

FB2 a été créé par un groupe de développeurs dirigé par Dmitry Gribov , qui est le directeur technique de litres, et Mikhail Matsnev, le créateur du lecteur Haali Reader. Le format est basé sur XML, qui est plus strict que HTML, régit le travail avec des balises ouvertes et imbriquées. Un document XML est accompagné d'un soi-disant schéma XML. Un schéma XML est un fichier spécial qui contient toutes les balises et décrit les règles de leur application (séquence, imbrication, obligatoire et facultatif, etc.). Dans FictionBook, le schéma se trouve dans le fichier FictionBook2.xsd. Vous pouvez trouver un exemple de schéma XML sur le lien (il est utilisé par la librairie électronique litres).

Structure du document FB2


Le texte du document est stocké dans des balises spéciales - éléments de type paragraphe: <p>, <v> et <subtitle>. Il existe également un élément <empty-line> qui n'a pas de contenu et est utilisé pour insérer des espaces.

Tous les documents commencent par la balise <fictionbook> racine, sous laquelle <stylesheet>, <description>, <body> et <binary> peuvent apparaître.

La balise <stylesheet> contient des feuilles de style pour faciliter la conversion vers d'autres formats. Le <binaire> contient des données encodées en base64 qui peuvent être nécessaires pour rendre le document.

L'élément <description> contient toutes les informations nécessaires sur le livre: le genre de l'œuvre, la liste des auteurs (F. I. O., adresse e-mail et site Internet sur Internet), titre, bloc avec mots-clés, annotation. Il peut également contenir des informations sur les modifications apportées au document et des informations sur l'éditeur du livre, s'il a été publié sur papier.

Voici à quoi ressemble la partie du bloc <description> dans l'entrée FictionBook pour l'étude d'Arthur Conan Doyle dans Scarlet tirée du projet Gutenberg :

<?xml version="1.0" encoding="iso-8859-1"?> <FictionBook xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"> <description> <title-info> <genre match="100">detective</genre> <author> <first-name>Arthur</first-name> <middle-name>Conan</middle-name> <last-name>Doyle</last-name> </author> <book-title>A Study in Scarlet</book-title> <annotation> </annotation> <date value="1887-01-01">1887</date> </title-info> </description> 

Un élément clé d'un document FictionBook est <body>. Il contient le texte du livre lui-même. Il peut y avoir plusieurs de ces balises dans le document - des blocs supplémentaires sont utilisés pour stocker les notes de bas de page, les commentaires et les notes.

FictionBook fournit également plusieurs balises pour travailler avec des hyperliens. Ils sont basés sur la spécification XLink développée par le consortium W3C spécifiquement pour créer des liens entre différentes ressources dans des documents XML.

Avantages du format


La norme FB2 ne comprend que le jeu de balises minimalement nécessaire (suffisant pour le "design" de la fiction), ce qui simplifie son traitement par les lecteurs. De plus, en cas de fonctionnement direct du lecteur au format FB, l'utilisateur a la possibilité de configurer lui-même presque tous les paramètres d'affichage.

La structure stricte du document vous permet d'automatiser le processus de conversion du format FB vers tout autre. La même structure permet de travailler avec des éléments individuels des documents - ajustez les filtres par auteurs de livres, titre, genre, etc.Pour cette raison, le format FB2 a gagné en popularité dans RuNet, devenant la norme par défaut dans les bibliothèques électroniques russes et les bibliothèques des pays de la CEI.

Inconvénients de format


La simplicité du format FB2 est à la fois son avantage et son inconvénient. Cela limite la fonctionnalité de composition complexe du texte (par exemple, les notes marginales). Il n'a pas de graphiques vectoriels ou ne prend pas en charge les listes numérotées. Pour cette raison, le format n'est pas très approprié pour les manuels, les ouvrages de référence et la littérature technique (le nom du format en parle même - livre de fiction ou "livre d'art").

Dans le même temps, afin d'afficher un minimum d'informations sur le livre (titre, auteur et couverture), le programme doit traiter la quasi-totalité du document XML. Cela est dû au fait que les métadonnées se trouvent au début du texte et les images à la fin.

FB3 - développement de format


En raison des exigences accrues pour la mise en forme du texte des livres (et pour compenser certaines des lacunes du FB2), Gribov a commencé à travailler sur le format FB3. Le développement ultérieur s'est arrêté, mais en 2014 a repris .

Selon les auteurs, ils ont étudié les besoins réels de la publication de littérature technique, examiné des manuels, des ouvrages de référence, des manuels et décrit un ensemble plus spécifique de balises qui permettraient d'afficher n'importe quel livre.

Dans la nouvelle spécification, le format FictionBook est une archive zip dans laquelle les métadonnées, les images et le texte sont stockés dans des fichiers séparés. Les exigences concernant le format du fichier zip et les accords sur son organisation sont spécifiés dans la norme ECMA-376 définissant Open XML.

Un certain nombre d'améliorations liées à la mise en forme (déchargement, soulignement) ont été apportées et un nouvel objet a été ajouté - le «bloc» - qui forme un fragment arbitraire d'un livre sous la forme d'un quadrilatère et peut être incorporé dans du texte avec un flux autour. Les listes numérotées et à puces sont prises en charge.

FB3 est distribué sous une licence gratuite et dispose d'un code source ouvert, de sorte que tous les utilitaires sont disponibles pour les éditeurs et les utilisateurs: convertisseurs, éditeurs cloud et lecteurs. La version actuelle du format, du lecteur et de l' éditeur peut être trouvée dans le référentiel de projet sur GitHub.

En général, FictionBook3 est encore moins répandu que son frère aîné, cependant, plusieurs bibliothèques électroniques proposent déjà des livres dans ce format. Et en litres il y a quelques années, ils ont annoncé leur intention de transférer l'intégralité de leur catalogue vers un nouveau format. Certains lecteurs prennent déjà en charge toutes les fonctionnalités FB3 nécessaires. Par exemple, tous les modèles de lecteurs ONYX modernes, par exemple Darwin 3 ou Cleopatra 3 , peuvent fonctionner avec ce format «prêt à l'emploi».


/ ONYX BOOX Cleopatra 3

Une distribution plus large de FictionBook3 vous permettra de créer un écosystème axé sur un travail complet et efficace avec du texte sur n'importe quel appareil avec des ressources limitées: noir et blanc ou petit écran, mémoire faible, etc. Selon les développeurs, une fois que le livre compilé sera plus pratique dans n'importe quel environnement.



PS Nous attirons votre attention sur plusieurs critiques de lecteurs ONYX BOOX:

Source: https://habr.com/ru/post/fr411755/


All Articles