# DITA for Publishers Vocabulary Modules Overview

The DITA for Publishers project provides map, topic, and domain specialization vocabulary modules for constructs needed by typical publishing documents.

The map specializations are:
publication map and mapref domains (pubmapDomain, pubmapMaprefDomain)
Provide a rich set of topicref specializations that can be used to create DITA maps that represent almost any possible configuration of typical publication components. As map domains, the publication map and mapref elements can be mixed with elements from other map domains, such as the Learning and Training map domain. The publication map domain has been designed to make it easy to organize publication components into submaps. The pubmapMaprefDomain provides topicref specializations that reference maps. These are named *-mapref so that it's clear that the reference is (or is intended to be) to a map. Their use is not mandatory (any topicref can refer to a map by specifying format="ditamap"), which is why they're organized as a separate domain.
Provides a rich set of metadata elements that reflect the needs of publishers. Publishing publication metadata tends to be more demanding than that required by technical documents. As a map domain, the publishing metadata elements can be added to any map type.
pubmap
The publication map map type integrates the publication map and publication metadata domains into a map document type. It serves both as a general publication map type and as an example of how to integrate and configure the publication map and publication metadata domains. Similar to the DITA 1.2 bookmap, but less constrained. Represents a single publication, nominally as presented in print (although it may be adapted for other media formats as well). Includes publishing-specific metadata not available from bookmap, such as both 10- and 13-digit ISBNs and ISSNs. Includes the ability to represent arbitrary single pages, such as often occur in fiction books before the main content. Also includes facilities for including cover components.
report
A map that represents a report.
simpleslideset
A map that represents a set of slides as for a presentation.
trainingMap
A map for training. Integrates the DITA Learning and Training learning map and learning metadata domain. Intended as a base for maps that represent training-specific learning content.
The topic specializations are:
article
For articles within periodicals or article-based books. Allows nested subsection and sidebar topic types in the default shell configuration. Enables authoring of complete articles as single files.
chapter
For chapters within books. Allows nested subsection and sidebar topic types in the default shell configuration. Enables authoring of complete chapters as single files.
division
A generic titled division within a publication. Essentially equivalent to the subsection topic type, but even more generic.
part
For parts within books. Provides the part title and, optionally, introductory body content. Can be configured to allow nested chapter or subsection topics but does not in the default shell configuration.
subsection
Generic subsection within articles and chapters. Enables creation of arbitrary hierarchies of titled divisions, e.g., within chapters and articles. Base for more specialized subsection types.
sidebar
Generic out-of-line topic. May contain nested subsections in the default shell configuration. Base for more specialized sidebar types. Can be anchored to specific points within topics using the <d4pSidebarAnchor> element.
d4pCover
Provides a generic topic for representing publication covers. Has a specialized title element with empty content. The content of the cover topic would normally be a reference to a graphic of the cover itself.
d4pExercise
Represents an exercise within a textbook or similar learning content.
d4pQuestionTopic
A topic intended to hold a single Learning and Training interaction question (assessment). Provided as a way to construct sets of questions through a map. The presentation intent of d4pQuestionTopic is that the topic title is not normally rendered, just the contained question.
d4pSlide
Represents a single slide within a presentation. Designed for use with the separate Slidinator tool (github.com/drmacro/slidinator), which can generate PowerPoint slide decks (and other forms of slide presentation) from DITA documents.
The topic domain specializations are:
bibbase (d4p_bibbaseDomain)
Provides the base for more sophisticated bibliographic entries. Modeled on the DocBook <biblioentry> and <bibliomixed> element types.
classification (d4p_classificationDomain)
Provides a generic <classification> element (specialized from <data>) that clearly identifies the metadata elements it contains as being classifying as opposed to any other type of metadata (such as identifying metadata). Classifying metadata normally relates its container to items in defined classification taxonomies.
enumeration (several domains)
A common requirement in publishing documents is arbitrary numbering (enumeration) of document components. Sometimes this enumeration is arbitrary, meaning that it cannot be automated. Sometimes it needs to be captured for legacy or historical reasons. The enumeration domains support both the simple identification of content that serves as enumerations, allowing a processor to show or suppress the enumerations as appropriate, and author-specification of arbitrary automatic numbering. The intent of the enumeration design is to enable author-specification of arbitrary numbering rules where necessary. These domains are still somewhat experimental.
formatting (d4p_formattingDomain)
Provides elements that request or capture specific formatting effects, including line breaks, tabs, and mathematical equations represented using any combination of MathML, InDesign data, or graphics.
math (d4p_mathDomain)
Provides markup for representing equations in various ways, including using MathML. It currently integrates MathML as a foreign vocabulary. However, that integration will be replaced in DITA 1.3 with a standard integration and the DITA 1.3 equation domain.
Provides markup for integrating rich media (video, audio, etc.) into DITA content. Modeled as closely as possible on the HTML5 video and related elements. Output support is provided for HTML, HTML5, and EPUB.
rendition target select attribute (d4p_renditionTargetAttDomain).
Provides a global attribute intended to allow filtering and flagging based on the rendition type, e.g., PDF, EPUB, HTML, etc.
publication content (d4p_pubcontentDomain)
Provides elements that are unique to publications, e.g., "epigram" and "epigraph".
ruby (d4p_rubyDomain)
Provides markup identical to the HTML 5 <ruby> markup for annotating ideographic characters with their pronounciation, as is required for Japanese-language documents. Note that the HTML5 ruby design appears to be in flux.
simple bibliography (d4p_simplebibDomain)
Provides a specialized paragraph for bibliography entries that simply enables changing the formatting of the paragraph, e.g., to create a first-line hanging indent. Does not contain any markup for the details of bibliography entries.
textbook (d4p_textbookDomain)
Intended to provide elements specific to textbooks. Currently only provides the "display map" specialization of <fig>.
training map domain (d4p_trainingMapDomain)
Provides topicref specializations for representing a formal course structure (course, module, lesson, etc.). It is something of an experiment in organizing formal training content for instructor-led training. It is based on the Learning and Training learning group and learning object model.
variables (d4p_variablesDomain)
A simple (for now) facility for creating variables that are scoped hierarchically through the map and topic hierarchy. The variables facility lets you have variables scoped in a way that is analogous to programming languages, where lower scopes (closer to the reference) take precedence over higher scopes. Likewise, a given topic or map used in two different contexts can reflect different variable values. Variable definitions may be in maps, topicrefs, topic prologs, or topic bodies. Variable definitions are specializations of <data>, variable references are specializations of <keyword> or <text> as appropriate.
verse (d4p_verseDomain)
Provides elements for representing verse as a sequence of stanzas and lines.
XML (xmlDomain)
Provides elements for identifying mentions of XML constructs. (Note: this domain is made obsolete by XML domain in DITA 1.3. However, the markup details between the two domains are slightly different).

The project's vocabulary modules also include configurations of the standard OASIS-defined topic types that integrate the various DITA for Publishers domain modules.

In addition to these base specializations (base in the sense of defining generic publishing-specific markup), the sample data includes a specialization for Shakespeare plays that shows how to adapt DITA, and DITA for Publishers specializations, to the very specific task of representing plays.