APP下载

EPUB电子书标准研究

2013-12-29唐翔

出版科学 2013年2期

[摘要]回顾EPUB开放式电子书标准的发展历程;重点分析EPUB 3.0标准的结构,并通过EPUB3.0格式的电子书《白鲸记》加以展示;最后概括EPUB3.0在国内外的应用情况及特点。

[关键词]电子书标准 EPUB 3.0 数字出版 开放电子书论坛

[中图分类号]G237 [文献标识码] A [文章编号] 1009-5853 (2013) 02-0089-06

1 EPUB发展历程

近一二十年,国内外电子书产业迅猛发展。作为一种新型出版物形态,电子书的内容、格式、质量、平台、版权等方面都需要相关标准支持。目前,与电子书有关的标准可大致分为电子文档结构定义和描述标准、多媒体格式标准、编码标准、元数据标准、版权标准等。其中,EPUB(Electronic publication的缩写,电子出版)是一个免费开放的电子书格式标准,由1999年9月发布的开放电子书结构(Open eBook Publication Structure,OEBPS)标准不断改进演变而来。提出OEBPS标准的开放电子书论坛(Open eBook Forum,OeBF)也随着EPUB电子书标准的发展更名为国际数字出版论坛(The International Digital Publishing Forum,IDPF)。EPUB标准从OEBPS 1.0到EPUB 3经历了将近14年时间,根据标准名称的变化可划分为三个发展阶段。

1.1 第一阶段 OEBPS 1.*

OEBPS 1.*阶段包括三个版本的标准:1999年9月,OeBF发布OEBPS 1.0版本。在随后的应用中,发现该规范存在含糊、错误、不足等地方,于是OeBF于2001年6月发布了1.0.1版本,修复1.0版本存在的问题。2002年8月,OEBPS 1.2版本发布,新功能的增加和格式、显示等方面功能的增强使开放式电子书标准得到进一步完善。

但是,OEBPS 1.2标准也存在缺点。如其元数据(metadata)部分基于都柏林核心集(Dublin Core,DC),主要是描述性元数据,虽然可以采用x-metadata方式进行扩展,但是能力有限,在管理性元数据方面比较欠缺[1]。又如OEBPS1.2不支持数学公式,也没有解决数字权利管理(Digital Rights Managem,DRM)问题[2]。

1.2 第二阶段 EPUB 2.*

2006年10月,IDPF发布开放容器格式(Open Container Format,OCF)1.0版本。次年9月,发布开放出版物结构(Open Publication Structure,OPS) 2.0版和开放包裹格式(Open Packaging Format,OPF) 2.0版。OPS 2.0、OPF 2.0以及OCF 1.0共同构成EPUB 2.0电子书标准,并取代OEBPS 1.2成为IDPF的正式标准。EPUB 2.0使用XHTML或DTBook 2005来展现文字,并以zip压缩格式来包裹档案内容;在版权处理方面,支持对OCF容器中的内容文件进行加密;在文件布局和显示方面,出版商可以通过样式表来控制布局,打破固定的行和页,从而呈现流动的文本[3]。

但是,EPUB 2.0依旧不能支持数学公式,并需要进一步在出版商的控制性和用户的方便性之间寻找平衡。2010年7月2日,IDPF发布EPUB 2.0.1版本,组成部分分别升级为OPS 2.0.1、OPF 2.0.1和OCF 2.0.1。然而,该标准只是纠正前一版本中的错误和不一致,并没有从根本上改变功能。如新标准依然不能完美支持多媒体内容,无法支持读者和电子书互动,不支持标准注释功能,也无法实现精确排版。

1.3 第三阶段 EPUB 3.0

2011年10月11日,IDPF宣布完成EPUB 3.0版本的制定。与EPUB 2.0.1相比,新版本在很多方面进行了修正、改进和删除,使得开放式电子书标准更加完善。以下将详细分析EPUB3的结构和应用实例。

2 EPUB 3.0结构及实例

EPUB 3.0标准在文件结构上有很大改动,将复杂重复的内容进行了整合修改,并且为了更好地体现电子书在多媒体文件方面的运用,新增了多媒体方面的规范。

2.1 标准结构

从标准结构来看, EPUB 3.0主要由4个规范组成:Publication 3.0、Content Documents 3.0、Open Container Format 3.0和Media Overlays 3.0。

2.1.1 EPUB Publications 3.0

EPUB Publications 3.0规范取代了之前的OPF 2.0.1,定义了EPUB 3格式出版物的层次和符合性要求。它的主要内容是关于包裹文件(Package Document)的,包含电子出版物的目录顺序和相关结构性资料,是电子阅读器如何处理及显示EPUB电子书的主要信息来源。包裹文件将出版物的信息资料有效地集中在一起,并配上详细说明,使阅读器能准确识别整本电子书的结构以及阅读顺序。包裹文件主要内容有:①元数据(metadata),用于描述电子书相关信息;②资源清单(manifest),将电子书的所有资源进行描述定义;③结构顺序(spine),预设电子书的阅读顺序[4]。

2.1.2 EPUB Content Documents 3.0

EPUB Content Documents 3.0规范取代了OPS 2.0.1,但是所规定的内容并没有改变,即对电子书的内容进行定义:首先,整个电子书内容必须为基于HTML 5的XHTML文件,每章内容的定义语句均要符合XHTML的语法规则;其次,该规范定义了CSS层叠样式表,对电子书的布局排版进行了说明;再次,图像的嵌入、导航文件的定义、对MathML标记的支持等都在该规范中进行了介绍。

2.1.3 EPUB Open Container Format(OCF)3.0

OCF 3.0是EPUB 2.0中惟一没有被替代的规范,只是对版本进行了升级。它定义EPUB文件格式和处理模型,将文件中所包含的相关内容打包封装在单一的文档容器中。OCF是EPUB电子书必要的容器技术,包括OCF抽象容器和OCF ZIP容器。OCF抽象容器针对容器的内容定义了一种档案系统模型,使用单一共通的根目录,将所有出版物资源均放入其中,并生成名为META-INF的文件。另一个名为mimetype的文件保留给OCF ZIP容器所使用。

META-INF中必须包含container.xml文件,其中指明了EPUB电子书根目录的媒体类型和文件路径,除此之外还可以选择性地使用encryption.xml对内容进行加密、用manifest.xml列举内容清单、用metadata.xml描写电子书相关信息、用rights.xml设置文档管理的权限,以及signatures.xml对文件进行数字签名[5]。

OCF ZIP容器使用ZIP格式。最终EPUB格式文件就相当于是一个压缩包,可将后缀名.epub改为.zip并解压缩后查看电子书的具体组成内容。

2.1.4 EPUB Media Overlays 3.0

EPUB Media Overlays 3.0规范是EPUB 3.0标准中新添加的内容,包含对媒体层文件的定义、如何建立媒体层,以及对播放行为的描述。

EPUB 3.0格式电子书添加了文字和语音同步功能,可利用媒体层文件描述来建立同步朗读型书籍。其中SMIL标记是主要内容,媒体层通过对SMIL标记的运用将结构化的音频旁白加到对应文字上,从而解决文字和语音同步的问题。另外,该规范还定义了音频和视频嵌入、片段播放的顺序等内容。

2.2 实例分析

IDPF官方网站给出了由谷歌代码(Google Code)主办的EPUB 3发展论坛“EPUB修订”(epub-revision)。该论坛允许公开访问、注册登记、上传下载EPUB 3.0文件。本文从该网站下载了未经加密的EPUB 3格式《白鲸记》(Moby Dick),用来具体演示EPUB 3.0电子书标准的结构。《白鲸记》文件名为moby-dick-mo-20120206.epub,将后缀“.epub”重命名为“.zip”后变成压缩包,解压后得到同名文件夹,其中包括META-INF、OPS和mimetype(见图1)。

2.2.1 mimetype文件

每一本EPUB格式电子书中必须包含一个“mimetype”文件。这个文件内容十分简单,只有一条语句“application/epub+zip”,不能包含新行或者回车且必须作为ZIP压缩包中的第一个文件。其作用是规定电子书能通过EPUB阅读设备和ZIP压缩软件打开。这也是把《白鲸记》后缀名.epub改为.zip并解压缩后可以看到详细内容的原因。

2.2.2 META-INF文件夹

META-INF是OCF抽象容器的必要目录。该目录主要描述电子书的位置、打开方式、信息加密、目录、书籍资料、权限管理等信息。其中必须要有container.xml容器文件,在这个文档中必须清楚指明容器所包含的EPUB电子书根文件的媒体类别与路径。实例《白鲸记》的container.xml文件打开后如图2所示,它的主要功能在于告诉阅读设备该从何处找到且如何打开该内容文件。container.xml文件是不能加密的。

其中,<?xml version=“1.0”encoding=“UTF-8”?>语句声明了XML的版本和编码方式。元件中可以看到EPUB电子书标准参考了开放文档格式标准(Open Document Format,ODF),突显出EPUB格式的开放性。根文件元件为OPS/package.opf,它指出根目录的路径,与内容之间的关系必须惟一。而该电子书的媒体类型则由语句< media-type=“application/oebps-package+xml”>进行说明。

2.2.3 OPS文件夹

OPS文件夹存放了电子书的全部内容。《白鲸记》电子书每一个章节的内容、图片、音频、视频,它在阅读器上显示的字体、样式以及该电子书的内部结构.opf文件都在OPS中。

2.2.3.1 .opf文件

.opf文件指定了所有内容的位置并描述所有具体内容,是EPUB规范中最复杂的部分。将《白鲸记》的package.opf文件打开后,根据规范中各个元件分别显示其内容语句。

(1)元件

这是包裹文件的根容器。version="3.0"指出该电子书符合EPUB 3.0版本规范标准。unique-identifier=“pub-id”用以识别元件(见图3)。

(2)元件

该元件没有定义属性,是的第一个子元件,描述电子书的相关信息。例如:书名、作者、语言、出版社、单一识别符(如DOI、ISBN、ISSN)、语言等(见图4)。出版物最少需要包括三个必要元件——title、identifier和language。

由图4可以了解EPUB 3.0格式《白鲸记》仍采用DC元数据集。其中,书名为“Moby-Dick”,作者是“Herman Melville”,“Dave Cramer”为创作本书的次要作者。 ISBN号为“9780316000000”,该书是英文内容,由Harper & Brothers出版社出版。

(3)元件

EPUB电子书的详细资源清单由元件构成。它是第二个必要的子元件,每一个资源用一个元件表示(见图5)。

其中属性必须在此文件范围内是惟一的;属性指定所对应条目的位置;属性说明条目中出版物的媒体类型和格式;属性定义条目所描述的媒体叠加层文件。实例《白鲸记》的元件语句中依次提到:

① 电子书字体为常规、斜体、粗体和粗斜体;

② 目录“toc.xhtml”;

③ 版权页“copyright.xhtml”;

④ 书名页“titlepage.xhtml”;

⑤ 定义封面和封面图片路径的“cover.xhtml”“cover-image”;

⑥ 电子书排版的CSS样式位置“css/stylesheet.css”;

⑦ 书名页图片“aMoby-Dick_FE_title_image”的读取地址;

⑧ 前言“preface_001.xhtml”;

⑨ 简介“introduction_001.xhtml”;

⑩ 评论和引语“epigraph_001.xhtml”;

分别将第一二章文字及其多媒体语音同步在一起的“chapter_001.xhtml”“chapter_001_overlay.smil”“chapter_002.xhtml”和“chapter_002_overlay.smil”;

第三章“chapter_003.xhtml”;

第一章音频“audio/mobydick__001_002_melville.mp4”;

简要目录“toc-short.xhtml”。

(4)元件

该元件指定EPUB 3.0电子书内容的预设阅读顺序(见图6)。元件是中的子元件,表示出版物资源的顺序。每个元件都需要一个属性,并且和 manifest 中的某个 ID 匹配。可选属性则说明内容是否是线性阅读序列的一部分,还是与前后项无关。

2.2.3.2 .smil音频文件

《白鲸记》解压后的OPS文件夹中有两个.smil文件,分别是第一二章的同步音频。将.smil音频文件连接到相应的文本内容上,可实现文字和语音同步播放。

将名为“chapter_001_overlay.smil”的第一章音频通过网页打开,查看其语句定义如图7所示。

元件是媒体层文件的根元件。属性指明媒体层所遵循的SMIL版本规格。

是必要元件,是媒体层文件里内容呈现的起点。

元件包含要依序播放的媒体文件。属性对媒体文件进行惟一识别编号;属性指定该媒体文件所对应的EPUB内容文件;属性是在EPUB内容文件中相对应的结构化语意表达式。

元件包含了所要同步播放的媒体文件。属性同样为惟一识别符。必要子元件通常是引用EPUB内容文件里的文字元件,属性对应EPUB内容文件的片段识别符。