走进DITA

1.DITA是什么

DITA最早由IT类公司为解决技术文档的写作与管理问题而提出来的,但是DITA的应用不仅仅局限于技术文档写作,还可以扩展到主题内容的知识库建设领域。作为一种信息组织技术,其包含的面向主题的结构化组织思路对扩充现有数字资源组织的方法体系具有借鉴和促进作用。

DITA是“Darwin Information Typing Architecture”(达尔文信息类型化体系结构)的缩写,它是IBM 公司为OASIS 所支持的团体贡献的发明。OASIS 的全称为“Organization for the Advancement of Structured Information Standards”(结构信息标准化促进组织)。

DITA是一种基于XML的体系结构,用于创作,制作和交付以主题为导向的信息类型的内容,这些内容可以以各种方式重复使用。

DITA是为创建新的文档类型和基于现有类型和域描述新的信息域而设计的。创建新类型和域的过程称为专门化。专门化能够创建非常具体的、有针对性的文档类型定义,这些定义仍然可以共享为更一般类型和域开发的通用输出转换和设计规则;这类似于面向对象系统中的类如何继承父类。

2.DITA特点

DITA有几个显著的特点。

模块化: DITA 定义主题DTD,它支持模块化的信息创建方法。主题是信息的组成部分,而不是完整的文档。主题覆盖某个特定兴趣区域的一个方面。(例如,某本白皮书可划分为多个主题:简介、概述、起源等。)DITA 还定义如何将主题组合到文档中的机制。此机制称为“映射”,它还允许您定义主题的层次结构。例如,一本书的映射可产生由章、节和小节组成的层次结构。

适应性强: 主题DTD 可指定一组通用元素(每个元素都具有不同的格式设置,例如标题、段落和列表),它在这一点上与HTML 类似。为使主题DTD 适应您的特定需求,DITA 定义了一种称为“专门化”的机制,可允许您定义新的标记,这些标记从主题DTD 中的标记继承它们的行为和属性。专门化使得能感知DITA 的下游应用程序可以处理未知的标记,它们将此类标记视为其属性所继承自的标记。例如,您可以创 建一个继承自“有序列表”的称为“Procedure”的标记,以及一个继承自“列表项目”的称为“Step”的标记。虽然您可能想将有关Procedure 和Step 的特定处理操作添加到应用程序中,不过对这些标记一无所知但能感知DITA 的应用程序会将Procedure 和Step当作有序列表和列表项目来处理。例如,对Step 一无所知但能感知DITA 的发布应用程序会将其作为列表项目来设置格式。

重用: 为了消除重复、提高准确性和减少更新信息的工作量,XML 帮助您重用信息和改变其用途,使您能够创建信息的单一来源,而且若来源中的某处信息有变化,将会自动更新含有该信息的所有文档。

共享: XML 可让您以这样一种方式构建信息:使组织内外的其他群体能够自动将您的信息合并到他们自己的过程中,从而为您创建的信息增加更多价值。

相关: 您可以使用XML 帮助自己创建模块化信息,并按照每个人的需求自动组合信息,使每个人都能获得所需的所有信息,并且只获得所需的信息。

自动化: 为了以经济高效的方式实现这些目标,自动化是关键所在。XML 通过允许您实施自动化过程所需的绝对一致的结构,使这一自动化成为可能。自动化所需的绝对一致的结构由“数据模型”定义,此模型是指DTD 或方案,它们规定在文档中允许使用哪些标记,以及可以如何使用这些标记。

3.DITA基本概念

DITA的基本原则是面向主题的,这里的主题(Topic)是具体的一个信息单元(Unit of Information)。所谓具体是指主题划分的粒度在于能够解决单一的实际问题或说明一个独立的主题。

DITA规范中定义了三种基本主题类型:概念(concept)、任务(task)和参考(reference)。概念主题回答“是什么”的问题,介绍产品或服务的相关背景和概览,为用户使用之前提供一些必要信息。任务主题回答“如何做”的问题,通过明确定义的结构来描述完成一个特定目标所需的方法和步骤。任务主题包括情境、前提条件、实际步骤、预期结果、举例和下一步行动等。参考主题提供对相关事实的快速访问。

对于技术信息而言,参考主题常用于编程语言的命令提示。主题结构方面,任何类型的主题都包含四个基本元素<title>、< description>、< prolog>和< body>。DITA中的每个信息单元作为独立的可重用的主题,脱离上下文环境而存储在主题仓库中。

DITA的设计初衷是构建一种基于主题的技术文档创作模式,并以主题为基础来创作、组织和链接信息内容。所谓主题,在技术信息中有时称为一个条目 (article),它具有标题和内容。主题是独立的信息单元,一个高质量的主题仅包括一个讨论对象。每个主题既要足够长以保证有其独立存在的价值,又要保持精简(“简约”理念)以确保仅集中于讨论一个对象,而不延伸到别的问题。在多数与产品、服务或技术一起提供的技术文档中,主题应该从属于一组经过有序组织的主题集。这一主题集能够以HTML网页、在线帮助或者PDF手册等多种形式打包输出。

DITA的价值不仅体现在可以让读者更好地阅读技术文档,还体现在它也能为技术文档的编辑创作者提供极大的便利。对于信息的使用者来说,精心创作的基

于主题的内容能够大大提升文档的可检索性、可导航性及可用性。而对于编创团队来说,基于主题的创作方式还能支持信息的重用与快速重组,以及便捷的文件管理与更灵活的链接”。

4. DITA出版流程

传统出版流程中,内容在完成版式设计和排版后交付出版印刷。编辑形成的纸质出版物或电子出版物,其内容、版式和格式是不可拆分且完整的有机整体。在传统编辑出版流程下,交付出版物能保证内容的完整性并-TUeP发行,但由于版式与内容未能有效分离,在处理不同出版物中的多元内容重用以及出版内容分模块灵活重组等方面有很大局限。

在DITA定义的出版流程中,内容组织的最细粒度单元是以XML格式描述的结构化内容模块。这种内容模块在DITA标准中被称作主题(Topic)。主题是能够自我描述且按照单一逻辑范畴组织的内容信息。根据出版物的结构组织要求,描述相同对象的主题通过对象映射(Mapping)机制进行逻辑顺序组织,形成内容完整的统一体。组织完成的出版内容经样式渲染(Rendering),形成交付终端展示的 数字出版物。

在数字出版的内容流转过程中,备选内容存储在内容仓库中。内容仓库是以XML格式为代表的非结构化数据存储的容器,例如以文档存储和检索为中心的领域专用数据仓库MarkLogicServer。内容仓库专门针对半结构化和非结构化数据进行设计和优化,能够实现TB级非结构化数据资源的全文检索。在数据模型组织方面,内容仓库采用XML树状结构组织,数据查询和检索使用的DML(Data Manipulation Language)和DDL(DataDefinitionLanguage)语言为XQuery查询。 抽取自内容仓库的信息单元根据DITA标准定义的标签进行格式化,形成描述同一信息主体的主题块。构成同一出版物的不同主题块围绕出版物内容展开描 述,相互之间具备一定的顺序或层级关系。不同主题块之间的松耦合关联由DITA映射维系,DITA映射描述不同主题块相互组合的层级关系和先后逻辑顺序。在DITA映射的黏合作用下,分散的主题块被重组成为具备逻辑关系的结构化文档。结构化文档包含形成交付出版物的所有内容元素,内容被重新组合成为具备逻辑层次关系和先后顺序的有机整体。在形成数字出版物之前,结构化文档经由可扩 展样式表语言(Extensible Stylesheet Language,XSL)及扩展样式转换语言(Extensible Stylesheet LanguageTransformations,XSLT)进行样式渲染,成为具备排版格式且样式美观的出版物。在渲染过程中,数字出版物能够根据出版需求,生成各种XML能够转换形成的目标出版格式,如PDF、RTF或HTML等,由展示终端提供给用户阅读。

5.DITA架构分析

(1)DITA主题

DITA主题是组织交付出版物的最细粒度单元,是进行一切后续工作的基础要素。主题承载一段语义完整的内容段落,以XML格式存储,并遵循DITA标准定义的标签进行封装。在DITA主题粒度划分上,要根据内容编辑的需求遵循一定准则实施划分。主题作为信息段落的载体,具备语义自包含的特性,即主题需具有信息描述的完备性,能够准确完整地表达内容含义,所以划分的粒度不宜过于细碎。但从另一个角度看,主题是建立上下文关联映射的基础单元,为便于通过DITA映射文件进行内容段落的重用,主题的划分粒度也不宜过粗,以免影响内容重组的灵活性。综上,主题的粒度划分既要大到能自我容纳,又要小到能满足上下文灵活有效地重组重用。DITA主题块在内部组成上具备相似的结构体,如标题内容主体、引用等。面向特定领域专门化的主题还包含任务、子任务等根据具体出版内容定制的可拓展主题模块。

在DITA主题的基础结构中,内部各要素之间按照一定逻辑关系进行组合。标题、摘要、内容主体、任务、引用等主题,对应描述不同结构的内容模块,并经映射文件重组后形成交付出版物的各个章节部件。此外,DITA主题还可以被定义在另外一个主题内部,形成子主题或嵌套主题,以便于同组或同类内容的管理、编辑和信息交换。构成DITA主题的结构体使用XML来描述,这种方式为DITA带来了诸多设计和使用方面的优势。首先,XML将出版物的内容与形式分离,出版业界可以将同样的数字化内容在不同的展现终端中重复使用,所需做的仅是依据不同展现终端的格式要求对XML文档进行渲染与转换。其次,XML是可扩展标 记语言,面向特定领域的出版编辑可以使用DTD文档类型定义,拓展XML模板,重新创建DITA主题中的元素、元素属性、排列方式、层级顺序等,将DITA主题中出现的标签专门化成为符合特定领域术语要求的标签。再次,D1TA借助XML这样具有普适性的格式,可以方便地与其他机构进行信息交换,而不必重新定制开发专用的创作工具或专有格式解析程序。DITA以XML格式作为内容载体,也存在一定的局限性。首先,XML在设计上实现了内容与格式的相对分离,但不能将标记、结构与内容完全分开,致使DITA主题中混淆了与内容无关的标记和显示结构。其次,面向领域专门化的DTD文档类型定义在定制方面存在一定难度,需要深入理解领域需求并熟悉文档类型定义规则的业务人员研究定制,并且在领域需求变化时,要随时对DTD定义进行更新以适应需求。DITA在设计实现上继承了XML格式的优点,并尽量规避其不足之处,以便众多非信息技术出身的出版从业者使用。DITA旨在辅助出版从业者轻松创建高度专业的结构和内容,同时保证内容模块能够以知识单元的形式进行交换传输与重复使用。DITA主题借助XML为载体,充分挖掘XML模块化信息承载与使用的最大潜力。 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (2)DITA映射 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

DITA映射用于组织出版物的逻辑顺序和层次结构,搭建交付出版物的结构框架。映射中包含指向DITA主题的链接,这些链接按顺序或层级结构将分散的主题黏合起来成为集合,并按一定的逻辑结构组织成为具备有机结构的交付出版物。

在形式上,DITA映射文件同样以XML为载体,D1TA通过映射来连接上下文内容。映射文件在内部使用<topicref>,示签组织一个或多个DITA主题,并赋予主题上下文的顺序和层级关系。<topicref>标签引用主题的组装顺序表示内容上下文的先后关系标签的主题嵌套层级表示内容上下文的包含关系。映射文件以.ditamap为后缀,在编译处理时DITA通过映射这样的单一逻辑结构,来管理主题组装后的导航顺序,并且适用于各种类型交付出版物的聚合生成。如PDF文档的导航目录,即可通过DITA映射创建的目录(TableofContents:TOC)生成。DITA映射也可有多个映射文件级联,形成复杂的混合层级映射结构。

DITA 映射能够将一个主题集合组织成为不同类型的出版物。如一本百科全书的主题集合对应各个词条的内容释义。如果将所有具备人名标签的词条抽取出来,可以借助 DITA 映射重组为一本人名志;而将所有具备地名标签的词条抽取出来,则又可映射重组为一本地名志。依此类推可以借助 DITA 映射重组为其他同类属性主题集合的出版物,即一个主题经由多种映射关系组织成不同出版物,不同映射也能够将相同的主题集合组织成不同类别的出版物。DITA 映射为内容的重组和重用提供了途径。一方面,松散的内容模块由 DITA 映射文件赋予逻辑关联关系,使其重组成为有机的整体。另一方面,以主题为单元的模块化内容可以在DITA映射的组织下实现灵活重用。对于不同出版物中重复出现的相同主题模块,可以借助 DITA 映射直接将指定主题引入到出版物中,而无需对相同的内容重复地排版编辑,这在一定程度上减少了内容管理上的冗余。

(3)DITA 领域专门化

面向专业领域的编辑出版,其基本思想是“求专不求全”,较之通用出版物涵盖各类编辑要素的要求有很大区别。专业领域的出版物针对领域特定的出版要求,定义对应的 DITA 主题要素,将通用的主题标签细化为领域专用的术语标签。在 DITA 专门化的过程中,首先要由领域专家分析并建立面向领域出版的要素模型,之后根据模型定义主题标签并形成 DTD 模板。经过领域专门化的DITA 主题,继承原有 DTD 标记的行为和属性,并赋予新标签更高的可读性,能明确地表义主题的内容模块和逻辑层次。与面向对象的编程语言思想类似,出版物的标记定义根据需求进行变更时,仅改变专门化标签的基类即可实现对标记的重定义,而无需分别维护每一个已实例化的主题。DITA 领域专门化使得新的要素定义建立在已有要素定义之上,并且新定义的要素可以使用已有处理规则进行处理。面向领域的 DITA 专门化是对 DITA 主题更高层次的抽象与复用,面向报纸、期刊、工具书、教科书等特定领域的出版从业者定义行业出版物标记,细化主题包含的概念、任务和引用,应用在各领域 DITA主题的生成中。

除 DITA 主题专门化之外,DITA 还支持映射文件专门化。DITA 映射可以面向映射领域实现专门化,通常是将引用主题的<topicref>标签专门化为映射领域,并可以在多种不同映射类型中实现设计模式重用。专门化的<topicref>标签限定了对特定类型主题的引用,如<conceptref>标签引用概念主题,<stepref>标签引用描述操作步骤主题,<summaryref>标签标识提供集合总结的主题。专门化的映射类型保证主题集合符合目标出版物的组织结构,在帮助出版物减少信息预处理、明确信息类型、通过专门化引用保持信息相容性、设计和处理流程的重用等方面具有很高的实用价值。

6. DITA应用分析目前

DITA在国内外IT技术类企业中应用较为广泛,具体应用领域包括技术文档编写、数字出版,企业信息化(知识管理、内容管理、文档管理)等。国际上已经存在一些成熟的应用和相应的解决方案,如PTC公司的Arbortext[6]、Adobe公司的FrameMaker[7]、JustSystems公司的XMetal[8]等。除了商业解决方案之外,也存在一些支持DITA的开源工具,如DITAOpen Toolkit是一款基于JAVA技术的开源引擎,为DITA文档解析与转换提供技术支持[9]。虽然DITA具有面向主题、模块化复用、灵活输出等诸多优点,但结构化写作的技术模式对传统内容创作而言,是一种写作范式上的巨大转变。人们已经习惯于在文字处理软件撰写文档,虽然商业解决方案都力图在用户体验界面上简化和方便用户的使用,但DITA本身仍然具有较高的技术门槛,因此没有被广泛接受。数字内容存储形式多种多样,从图书馆数字内容组织和管理的观点来看,使用DITA对庞大的数字资源进行描述和转化的想法是不现实的,因此界定DI-TA的应用范围非常重要。企业知识管理实践中从内容生产的源头处介入,应用DITA方案是一条行之有效的内容管理途径。在数字图书馆知识库建设中,对于是否考虑采用DITA进行数字内容的结构化写作和发布,以下几点可供决策参考:a.内容交换的需要。XML是目前内容交换的一种优选格式。使用DITA制作的XML内容文件,可以方便地进行共享与交换,并为机器可读可理解的自动化处理机制打下基础。 b.内容结构与重用。考查内容的逻辑结构,像文学体裁之类的创造性写作,本身不具有严谨成型的结构模式,而且文学内容基本没有重用性的考虑,这就不适合采用DITA方法。DITA方法的一个核心理念是主题的重用(Reuse),内容重用意味着主题内容本身具有一定的参考和利用价值,因此DITA处理的内容应该是选择那些高价值的知识或情报内容。 c.大规模内容生产与管理。需要处理的内容数量较大时,可以考虑采用DITA的结构化处理机制。为内容预先设定结构模式,DITA使整个内容生产流程系统工程化和自动化,提高了内容管理的质量和效率。如果数字内容数量较少,则没有必要特意设计内容结构,否则采用DITA方法的投入会超过内容结构化处理所带来的好处,起不到事半功倍的效果。 d.协同写作与内容风格。多位作者同时为一个文档项目编制内容,DITA的结构化预设、内容与表现分离的处理方式,使得作者们在同一套结构化文档规则下,集中精力进行内容的写作和维护,保证了内容风格的一致性。排版和表现方面则由样式模板的XSLT转换机制进行统一化管理,这样能够有效提高内容写作上的协同质量。 e.服务要求复杂与个性化定制需求。对于复杂的用户需求,DITA流程可以实现内容“组装”到各类样式输出的快速响应,提供个性化定制的知识产品。

图书馆资源与服务指南(以下简称服务指南)是介绍图书馆资源和服务的小册子,能够帮助用户了解和更好地利用图书馆提供的各种信息资源和服务。图书馆的规模越大,采购的数据库资源越来越多,服务方式更加多元化的情况下,资源服务指南的编制会随之变得越来越复杂,维护成本也会不断增加。通常服务指南是一份篇幅冗长的PDF电子文稿或HTML网页。对于用户而言,他们一般仅仅想了解对自己有帮助的资源和服务类型,而不是费力翻阅整本服务指南后过滤出自己想知道的,无疑增加了用户的学习负担。对于频繁变动的资源和服务情况,及时进行修订和告知用户,这是当前服务指南编制模式所不能有效支持的。运用DITA方法对服务指南内容进行解构,进而建立起一个服务指南主题仓库。通过单源维护、多元化发布机制来改进服务指南的管理和利用效率。这种思路试图将传统平面线性化的文字写作进化到一个立体多维的知识系统工程,从撰写一本小册子进化到支撑图书馆服务的知识库建设的一部分,服务指南最终变为由知识库驱动的针对不同用户群体需求的动态输出。下面以中科院国家科学图书馆的资源与服务指南为例,讨论DITA应用的可行性。中科院国家科学图书馆截至目前已开通180余个文献数据库,建设了若干服务系统,其资源种类与服务方式较为丰富。服务指南的内容主要包括国家科学图书馆资源与服务简介、如何查找资料、如何利用服务、查询技巧、合理使用资源和术语介绍六个主要部分和三个附录,按照“提问-回答”方式组织整理。根据DITA的基本主题类型和服务指南的编写体例,大体可将内容划分为四个主题类型:a.概念主题:介绍图书馆资源与服务,方便用户使用图书馆服务之前了解相关背景,具体包括资源与服务体系简介、合理使用资源等;b.任务主题:如何利用图书馆完成某个特定信息查询任务的详细步骤与方法,具体包括查找资料、查找技巧等;c.参考主题:包括常用服务联系方式等;d.术语主题:包括术语介绍等。主题的编写遵守DITA主题类型结构和相关元素,保证了内容结构的一致性,方便管理与利用。任务主题“查找网络数据库”在< oXygen/> XML Author工具中的编写示例,左 侧是大纲设图,显示了文档结构及相关元素,右侧是所见即所得的内容编辑窗口。

利用DITA这四类主题的结构对服务指南内容进行重新组织,将每个主题集中存入主题仓库。之前面向用户的都是同一份完整的服务指南,运用DITA方法在输出完整的服务指南基础上,根据用户的个性化需求输出各种“衍生品”。学科馆员通过DITA映射机制,按照学科服务的六个领域(资源环境、能源工程、信息光电、数理科学、化学化工和生命科学等)从主题仓库中调出相关主题,有针对性地制作符合特定学科用户需求的个性化服务指南产品,主动推送给读者。服务指南的动态性和个性化能够在一定程度上保证学科服务的质量和及时做出响应。由于所有的资源和服务内容都转化成DITA主题后存入DITA库,服务指南的局部修改和维护工作也变得相对轻松和容易。

关于DITA项目中人物角色的管理方面,这里定义三个人物角色:首席学科馆员,学科馆员和模板设计者。首席学科馆员负责服务指南的整体设计与规划;学科馆员根据自己负责的学科或科研院所对应的资源与服务内容按照四种预设主题结构类型进行撰写和负责相关的维护工作;模板设计者属于技术支撑人员,依据服务指南的输出形式要求,设计出样式模板,这里要求掌握XSL等相关技能。这样的处理使得学科馆员不必在内容撰写时考虑排版细节问题,这些都交由样式模板自动处理。

服务指南运用DITA方法进行改造的劣势也比较明显。一开始要求培训学科馆员使用XML编辑工具进行结构化内容创作,而且需要掌握DITA的一系列标记语法,整体使用门槛较高。选择一些商用的类似文字处理软件操作界面的所见即所得的DITA编辑工具可以在一定程度上降低使用门槛,但DITA理念的接受和理解过程是不可避免的。另外DITA在内容数量越多的情况下优势和效益体现得越明显,而对于中小型图书馆而言,自身订购的信息资源种类和提供的服务方式较少,服务指南的撰写与维护工具就相对简单一些,传统的文字编辑工具即可胜任。这类情况没有必要采用DITA方法,否则就把简单问题复杂化了,因此要根据图书馆资源数量和服务手段的具体情况,谨慎做出决策。

7.DITA与DOCBOOK对比

DITA和DocBook是数字出版领域的两种标准,通过定义规范化的文档描述规则,来解决文档交付过程中遇到的问题。面向不同类型的交付出版物,DITA和DocBook各有见长,但在实际应用中也有自身的限制因素。结合近期我参与的项目实践,对两个标准的对比分析总结如下。

DITA解决了出版物的结构化描述和内容重组问题,且支持多语言版本制作,适用于对格式有严格限定的技术手册类出版物。但DITA不能实现很完美的 样式渲染,且对于内容与格式一体化的复杂出版物,DITA很难进行主题和界定与划分。所以使用DITA进行书籍出版的成本和难度较高。

相比较来说,DocBook适用于通用出版物,文档易于组织和排版。但DocBook内容以Section段落组织,不具备DITA的内容映射机制,无法做到类似Topic这样粒度的内容划分与重组。且对于内容需要频繁修改的文档排版,Docbook略显力不从心。 DITA和DocBook专注于交付技术信息,但DITA侧重于交付主题,而DocBook侧重于交付书籍。DITA提供基于主题级粒度的信息分 类,允许作者组织并描述特定信息领域。在生成多种文档格式的信息重用过程中,能够保持内容的高度一致性。在最终交付物的输出格式方面,DITA能够生成 PDF、CHM、HTML等大部分的出版交付类型。DocBook常用的交付格式为PDF和HTML,其他输出格式需要借助相关的功能插件。